Привет, Прошло много времени с моего последнего поста в январе. Мне очень жаль, потому что у меня есть работа, которую я не могу оставить. В этом посте я все еще говорю о модуляризации в Laravel, в случае, если я хочу поделиться об определении или регистрации нашего расписания, политики и промежуточного программного обеспечения в нашем модуле. Почему мы это делаем? Допустим, если мы хотим создать расписание, на основе документации Laravel нам нужно зарегистрировать наше расписание в Kernel.php, и оно будет нормально работать без каких-либо проблем, но что, если над проектом работает несколько человек, каждый из которых работает над своим проектом? его модуль и там же (Kernel.php) прописать его расписание? Скорее всего, это приведет к конфликту, поэтому регистрация расписания в самом модуле является одним из решений, которое может решить проблему.

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

Расписание
Прежде всего нам нужно создать нашу команду, а затем зарегистрировать ее в расписании. Чтобы сделать команду, вы можете использовать следующую команду php artisan module:make-command YourCommandName YourModuleName, и она сгенерирует вашу команду в вашем модуле, например, мы создадим команду для удаления блогов в каждом начале месяца, чтобы мы могли сделать это таким образом php artisan module:make-command DeleteBlogsCommand Blog, и это создаст DeleteBlogsCommand в модуле Blog.

После изменения команды мы можем зарегистрировать нашу команду в BlogServiceProvider, и она будет выглядеть так:

Затем посмотрите, зарегистрирован ли он уже с помощью команды php artisan.

После того, как команда также зарегистрирована, давайте зарегистрируем нашу команду как расписание в нашем модуле Blog. Мы можем увидеть расписание списка нашего приложения с помощью команды php artisan schedule:list

Мы можем зарегистрировать расписание в BlogServiceProvider, используя это в функции boot:

use Illuminate\Console\Scheduling\Schedule;
$this->app->booted(function () {
    $schedule = $this->app->make(Schedule::class);
    $schedule->command(‘blog:delete-all’)
            ->monthly();
});

И если мы снова запустим php artisan schedule:list, он покажет это:

И последнее, но не менее важное: мы можем настроить наш crontab на сервере для запуска php artisan schedule:run, поэтому наше расписание будет запускаться каждый месяц. Или вы можете использовать команду php artisan schedule:work для локального запуска расписания.

Это все, что я могу рассказать об определении планирования в модуле laravel, спасибо, что прочитали мой пост. Возможно, в следующем посте я расскажу о политике определения в модулях laravel, если у вас есть какие-либо вопросы или предложения, не стесняйтесь оставлять комментарии ниже. Поделитесь с другими, если вы нашли этот пост полезным.

До встречи

Проект

Ссылки