Предпосылки
Перед тем, как начать это руководство, сначала выполните следующие задачи:
- Создайте новый проект Laravel
- Настроить соединение с базой данных
- Запустите команду migrate, создайте пользовательскую таблицу
- Настройте конфигурацию для отправки писем (здесь 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.