ларавел

Учебник по планировщику Laravel

Учебник по планировщику Laravel
Некоторые задачи необходимо выполнять на регулярной основе в любом приложении, и было бы более эффективно, если бы задачи можно было выполнять автоматически. Фреймворк Laravel упрощает эти типы задач с помощью Laravel Scheduler. Отправка массовых электронных писем, связанных с предложениями, оптимизация данных, создание отчетов, хранение резервных копий приложений и удаление неактивных пользователей - вот некоторые из распространенных примеров повторяющихся задач, которые можно выполнять с помощью планировщика Laravel. Laravel может периодически выполнять определенные задачи, используя встроенный диспетчер задач с именем Кукуруза работа. Файл конфигурации с именем Корнтаб используется Кукуруза управлять задачами планирования. В этом руководстве показано, как управлять повторяющимися задачами, создавая Кукуруза задания и планирование задач.

Предпосылки

Перед тем, как начать это руководство, сначала выполните следующие задачи:

  1. Создайте новый проект Laravel
  2. Настроить соединение с базой данных
  3. Запустите команду migrate, создайте пользовательскую таблицу
  4. Настройте конфигурацию для отправки писем (здесь SMTP используется для отправки писем.)

Реализовать аутентификацию по умолчанию

Во-первых, реализуйте систему аутентификации пользователей по умолчанию Laravel, чтобы выполнить задачу планирования, показанную в этом руководстве. Выполните следующие команды из терминала, чтобы реализовать аутентификацию Laravel по умолчанию с использованием Vue.

$ composer требует laravel / ui
$ php artisan ui vue -auth

Выполните следующую команду, чтобы скомпилировать свежие леса и получить обновленное содержимое.

$ npm install && npm run dev

Выполните следующую команду, чтобы очистить кеш маршрута.

$ php artisan route: очистить

Выполните следующую команду, чтобы запустить сервер разработки Laravel и проверить, работает ли система аутентификации пользователей по умолчанию.

$ php artisan serve

Откройте любой браузер и запустите в браузере следующий URL-адрес. Если авторизоваться а также регистр ссылка отображается и работает правильно, значит, реализация аутентификации по умолчанию была завершена должным образом.

http: // локальный: 8000

Создайте почтовый класс и команду Artisan

Многие новые пользователи будут создавать учетные записи ежедневно и будут выполнять множество задач, связанных с зарегистрированными пользователями, когда проект находится в сети. Иногда приложению необходимо знать, сколько пользователей создавали учетные записи каждый день. Если эта информация требуется на регулярной основе, то лучше выполнять конкретный запрос через определенный интервал. Здесь используется команда Laravel для получения информации о текущих зарегистрированных пользователях, а почтовый класс используется для отправки этой информации по электронной почте администратору или указанному лицу.

Выполните следующую команду, чтобы создать почтовый класс для отправки электронной почты. Будет создан файл с именем SendUsersList.php в месте приложение / Почта.

$ php artisan make: mail SendUsersList

Откройте файл и измените содержимое, как в следующем коде.

пространство имен App \ Mail;
используйте Illuminate \ Bus \ Queueable;
используйте Illuminate \ Contracts \ Queue \ ShouldQueue;
используйте Illuminate \ Mail \ Mailable;
используйте Illuminate \ Queue \ SerializesModels;
class SendUsersList расширяет Mailable

используйте Queueable, SerializesModels;
/ * Объявление переменной массива * /
общедоступный $ userList = array ();
/ **
* Создать новый экземпляр сообщения.
*
* @return void
* /
публичная функция __construct ($ userList)

/ * Инициализируем переменную массива переменной, переданной
создание объекта класса. * /
$ this-> userList = $ userList;

/ **
* Создайте сообщение.
*
* @return $ this
* /
публичная функция build ()

/ * Отображение файла представления со значениями переменной массива * /
вернуть $ this-> view ('registerList') -> with ('userList', $ this-> userList);

Выполните следующую команду, чтобы создать настраиваемую команду Laravel с именем RegisterUsersList, который будет выполнять запрос, чтобы получить список информации о зарегистрированных пользователях за каждый день. Команда создаст файл с именем RegisterUsersList.php в месте приложение / Команды.

$ php artisan make: команда RegisterUsersList --command = зарегистрировано: пользователи

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

пространство имен App \ Console \ Commands;
используйте Illuminate \ Console \ Command;
/ * Импортируем необходимые пакеты * /
использовать Почту;
используйте App \ Mail \ SendUsersList;
использовать БД;
используйте Carbon \ Carbon;
используйте App \ Console \ Commands \ DateTime;
class RegisterUsersList расширяет команду

/ **
* Имя и подпись консольной команды.
*
* @var строка
* /
/ * Добавляем значение подписи * /
защищенная подпись $ = 'зарегистрировано: пользователи';
/ **
* Описание консольной команды.
*
* @var строка
* /
protected $ description = 'Список зарегистрированных пользователей';
/ **
* Создать новый экземпляр команды.
*
* @return void
* /
публичная функция __construct ()

родитель :: __ construct ();

/ **
* Выполнить консольную команду.
*
* @return int
* /
дескриптор публичной функции ()

/ * Считываем текущую системную дату * /
$ сегодня = Углерод :: сейчас () -> toDateString ();
/ * Получаем список зарегистрированных пользователей
в текущей системной дате * /
$ current_registered_users =
DB :: table ('users') -> whereDate ('created_at', $ today) -> get () -> toArray ();
/ * Создаем объект почтового класса с переменной массива
который содержит список зарегистрированных на данный момент пользователей * /
$ email = new SendUsersList ($ current_registered_users);
/ * Отправка электронной почты с использованием класса Mail * /
Mail :: to ('адрес электронной почты получателя') -> отправить ($ email);

Настройте расписание для выполнения команды

Открой Ядро.php файл из местоположения приложение / консоль и измените содержимое с помощью следующего кода. Вы можете установить различные типы параметров частоты расписания. Вы можете получить список по этой ссылке. Здесь используется почасовой график.

пространство имен App \ Console;
используйте Illuminate \ Console \ Scheduling \ Schedule;
используйте Illuminate \ Foundation \ Console \ Kernel как ConsoleKernel;
класс Kernel расширяет ConsoleKernel

/ **
* Команды Artisan, предоставляемые вашим приложением.
*
* @var массив
* /
/ * Инициализируем переменную $ commands * /
protected $ commands = [
'Приложение \ Консоль \ Команды \ RegisterUsersList',
];
/ **
* Определите расписание команд приложения.
*
* @param \ Illuminate \ Console \ Scheduling \ Schedule $ schedule
* @return void
* /
расписание защищенных функций (Schedule $ schedule)

/ * Устанавливаем ежечасное расписание * /
$ schedule-> command ('зарегистрировано: пользователи') -> ежечасно ();

/ **
* Зарегистрируйте команды для приложения.
*
* @return void
* /
защищенные функциональные команды ()

$ this-> load (__ DIR__.'/ Команды');
require base_path ('routes / console.php ');

Создать представление

Создать RegisterList.лезвие.php просмотреть файл со следующим кодом.


@if (количество ($ userList)> 0)

Список пользователей, зарегистрированных сегодня, представлен ниже:


@foreach ($ userList как $ user)
$ user-> name

@endforeach
@еще
Сегодня еще ни один пользователь не зарегистрирован.
@endif

Выполните команду:

Выполните следующие команды, чтобы очистить кеш.

$ php artisan cache: очистить
Конфигурация $ php artisan: кеш

Выполните следующую команду artisan из терминала, чтобы выполнить ранее созданную настраиваемую команду и проверить вывод.

$ php artisan зарегистрировано: пользователи

Проверьте адрес электронной почты получателя, чтобы узнать результат. Если пользователь не создан, появится следующий вывод.

Создайте новую учетную запись пользователя и снова проверьте электронную почту.

Заключение

Планировщик Laravel упрощает выполнение повторяющихся задач для приложения. После прочтения этого руководства читатели должны теперь иметь четкое представление о концепциях создания пользовательских команд и реализации автоматизированных задач с помощью Laravel Scheduler.

Левая кнопка мыши не работает в Windows 10
Если вы используете выделенную мышь со своим ноутбуком или настольным компьютером, но левая кнопка мыши не работает в Windows 10/8/7 по какой-то причи...
Курсор прыгает или перемещается случайным образом при наборе текста в Windows 10
Если вы обнаружите, что ваш курсор мыши прыгает или перемещается сам по себе, автоматически, случайным образом при вводе текста на ноутбуке или компью...
Как изменить направление прокрутки мыши и сенсорной панели в Windows 10
Мышь а также Сенсорная панельs не только упрощают вычисления, но и делают их более эффективными и требуют меньше времени. Мы не можем представить себе...