Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 30.09.2019 17:43:13

Переинициализировать приложение

Здравствуйте! У меня работают два сайта с разными доменами в одном приложении. С http запросами нет проблем: в зависимости от домена берутся разные конфиги, вьюхи и т.д. А вот с командами и асинхронными джобами беда. Создается приложение по-умолчанию. Я пробрасываю параметр (домен), но переинициализировать приложение не получается. Что не делаю, пути остаются дефолтными.

$app = require __DIR__.'/../bootstrap/app.php';
$app->make(Kernel::class)->bootstrap();

пробовал, не помогает.

Подскажите, пожалуйста, как быть.

Изменено andrylyaschevsky (30.09.2019 17:46:12)

Не в сети

#2 01.10.2019 16:34:12

Re: Переинициализировать приложение

Надеюсь это кому-то поможет. Написал такой хелпер:

/**
 * Init the application.
 *
 * @param string $domain
 * @return void
 */
function initApplication(string $domain = App::DOMAINS[App::DEFAULT_SUBDIR])
{
    $_SERVER = array_diff_key($_SERVER, $_ENV);
    array_map('putenv', array_keys($_ENV));
    $_ENV = [];

    global $app;

    $_SERVER['SERVER_NAME'] = $domain;
    $app = require __DIR__.'/../bootstrap/app.php';

    $app->make(Kernel::class)->bootstrap();
}

Не в сети

#3 01.10.2019 17:57:11

Re: Переинициализировать приложение

Надеюсь это кому-то поможет. Написал такой хелпер:

/**
 * Init the application.
 *
 * @param string $domain
 * @return void
 */
function initApplication(string $domain = App::DOMAINS[App::DEFAULT_SUBDIR])
{
    if (function_exists('putenv')) {
        array_map('putenv', array_keys($_ENV));
    }
    $_SERVER = array_diff_key($_SERVER, $_ENV);
    $_ENV = [];

    global $app;

    $_SERVER['SERVER_NAME'] = $domain;
    $app = require __DIR__.'/../bootstrap/app.php';

    (new Dotenv\Loader($app->environmentFilePath()))->load();

    $app->make(Illuminate\Contracts\Console\Kernel::class)->bootstrap();
}

Не в сети

Подвал раздела