Привет, Прошло много времени с моего последнего поста в январе. Мне очень жаль, потому что у меня есть работа, которую я не могу оставить. В этом посте я все еще говорю о модуляризации в 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, если у вас есть какие-либо вопросы или предложения, не стесняйтесь оставлять комментарии ниже. Поделитесь с другими, если вы нашли этот пост полезным.
До встречи
Проект
Ссылки