Laravel 5.6 Воспроизвести сайт без команд - PullRequest
0 голосов
/ 07 января 2019

У меня есть веб-сайт Laravel 5.6, на котором я хочу, чтобы эта функциональность была включена для нетехнического администратора, чтобы он мог отключить или активировать веб-сайт в любой момент времени.

Я успешно отключил сайт с помощью

    Route::get('shut/down', function() {
        `Artisan::call('down');`
    });

Но когда я хочу, чтобы мое приложение выполняло резервное копирование, используя

Route::get('bring/the/application/back/up', function() 
{
    Artisan::call('up');
});

Но это не работает, потому что мой сайт уже закрыт, поэтому это не будет работать. Но в командной строке у нас есть несколько команд, с помощью которых мы можем исключить IP-адреса для режима обслуживания.


Пример: php artisan down --allow=127.0.0.1 --allow=192.168.0.0/16

Есть ли у нас какое-либо решение, позволяющее исключить некоторые выбранные IP-адреса без использования метода командной строки или восстановить сайт без использования команд?

Ответы [ 3 ]

0 голосов
/ 07 января 2019

Вы можете программно добавить аргументы в качестве второго параметра в функцию call:

Artisan::call('down', ['--allow' => '192.168.0.0/16']);

Больше информации в документации: https://laravel.com/docs/5.7/artisan#programmatically-executing-commands

0 голосов
/ 07 января 2019

Вы должны более подробно взглянуть на Официальную документацию , где объясняется, как программно вызывать команды:

Иногда вы можете захотеть выполнить команду Artisan за пределами CLI. Например, вы можете запустить команду Artisan с маршрута или контроллера. Вы можете использовать метод вызова на фасаде Artisan для достижения этой цели. Метод call принимает либо имя команды, либо класс в качестве первого аргумента, а также массив параметров команды в качестве второго аргумента. Код выхода будет возвращен:

Route::get('/foo', function () {
    $exitCode = Artisan::call('email:send', [
        'user' => 1, '--queue' => 'default'
    ]);

    //
});

Итак, в вашем случае вам необходимо обновить обратный вызов маршрута:

Route::get('shut/down', function() {
    Artisan::call('email:send', [
        '--allow' => 'xxxx.xxxx.xxxx.xxxx' // Your ip address
    ]);
});

Таким образом, ваш IP-адрес будет доступен для доступа к bring/the/application/back/up адресу. В любом случае, я бы искал другое решение, если вы просто хотите «спрятать» интерфейс, создав определенную переменную (конфигурацию, базу данных и т. Д.), Которая «скрывает» веб-сайт, но поддерживает панель администратора для активации / деактивации. более простым способом.

0 голосов
/ 07 января 2019

Вы должны попробовать это:

Artisan::call('down', ['--allow' => '127.0.0.1']);
...