Предпоставки
Преди да започнете този урок, първо изпълнете следните задачи:
- Създайте нов проект на Laravel
- Настройте връзката с базата данни
- Изпълнете командата за мигриране, създайте потребителска таблица
- Настройте конфигурацията за изпращане на имейли (тук се използва SMTP за изпращане на имейли.)
Прилагане на удостоверяване по подразбиране
Първо, внедрете системата за удостоверяване на потребителя по подразбиране на Laravel, за да завършите задачата за планиране, показана в този урок. Изпълнете следните команди от терминала, за да приложите удостоверяването по подразбиране Laravel с помощта на Vue.
$ composer изисква laravel / ui$ php artisan ui vue -auth
Изпълнете следната команда, за да компилирате новото скеле, за да получите актуализираното съдържание.
$ npm инсталиране && npm стартиране devИзпълнете следната команда, за да изчистите кеша на маршрута.
$ php занаятчийски маршрут: ясноИзпълнете следната команда, за да стартирате сървъра за разработка на Laravel и проверете дали системата за удостоверяване на потребителя по подразбиране работи.
$ php занаятчийско обслужване
Отворете всеки браузър и пуснете следния URL адрес в браузъра. Ако Влизам и регистрирам връзката се появява и работи правилно, след което изпълнението на удостоверяването по подразбиране е завършено правилно.
http: // localhost: 8000
Създайте команден клас и занаятчийска команда
Много нови потребители ще създават акаунти ежедневно и ще изпълняват много задачи, свързани с регистрирани потребители, когато проектът е онлайн. Понякога приложението трябва да знае колко потребители са създавали акаунти всеки ден. Ако тази информация се изисква редовно, тогава е по-добре да изпълнявате конкретна заявка след редовен интервал. Команда Laravel се използва тук, за да се получи информацията за текущо регистрираните потребители, а използваният клас се използва за изпращане на тази информация по имейл до администратора или определено лице.
Изпълнете следната команда, за да създадете достъпния клас за изпращане на имейла. Той ще създаде файл с име SendUsersList.php в местоположението приложение / поща.
$ php artisan make: mail SendUsersListОтворете файла и променете съдържанието, както е показано в следващия код.
пространство от имена App \ Mail;използвайте Illuminate \ Bus \ Queueable;
използвайте Illuminate \ Contracts \ Queue \ ShouldQueue;
използвайте Illuminate \ Mail \ Mailable;
използвайте Illuminate \ Queue \ SerializesModels;
клас SendUsersList разширява Mailable
използвайте Queueable, SerializesModels;
/ * Деклариране на променлива на масив * /
публичен $ userList = масив ();
/ **
* Създайте нов екземпляр на съобщение.
*
* @return void
* /
публична функция __construct ($ userList)
/ * Инициализирайте променливата на масива от променливата, предадена от
създаване на обект на класа. * /
$ this-> userList = $ userList;
/ **
* Изградете съобщението.
*
* @ върни $ това
* /
изграждане на публична функция ()
/ * Показване на файла на изгледа със стойностите на променливата на масива * /
върнете $ this-> view ('registeredList') -> with ('userList', $ this-> userList);
Изпълнете следната команда, за да създадете персонализирана команда Laravel с име RegisterUsersList, която ще изпълни заявката, за да получи списък с регистрирани потребители информация за всеки ден. Командата ще създаде файл с име RegisterUsersList.php в местоположението приложение / команди.
$ php artisan make: command RegisterUsersList --command = регистрирани: потребителиОтворете файла и променете съдържанието със следния код, за да изпратите списъка на регистрираните в момента потребители на текущата система на определен имейл адрес.
пространство от имена App \ Console \ Commands;използвайте Illuminate \ Console \ Command;
/ * Импортиране на необходимите пакети * /
използвайте поща;
използвайте App \ Mail \ SendUsersList;
използвайте DB;
използвайте Carbon \ Carbon;
използвайте App \ Console \ Commands \ DateTime;
class RegisterUsersList разширява Command
/ **
* Името и подписът на командата на конзолата.
*
* @var низ
* /
/ * Добавяне на стойност на подписа * /
защитен $ подпис = 'регистрирани: потребители';
/ **
* Описанието на командата на конзолата.
*
* @var низ
* /
protected $ description = 'Списък на регистрираните потребители';
/ **
* Създайте нов екземпляр на команда.
*
* @return void
* /
публична функция __construct ()
родител :: __ конструкция ();
/ **
* Изпълнете командата на конзолата.
*
* @return int
* /
манипулатор на публична функция ()
/ * Прочетете текущата системна дата * /
$ днес = Carbon :: сега () -> toDateString ();
/ * Вземете списъка с информация за потребителите, които са регистрирани
в текущата системна дата * /
$ current_registered_users =
DB :: table ('users') -> whereDate ('created_at', $ today) -> get () -> toArray ();
/ * Създайте обекта на достъпния клас с променливата на масива
който съдържа списъка на регистрираните потребители в момента * /
$ имейл = нов SendUsersList ($ current_registered_users);
/ * Изпращане на имейл чрез клас на поща * /
Mail :: to ('имейл адрес на получателя') -> изпращане ($ имейл);
Настройте графика за изпълнение на командата
Отвори Ядро.php файл от местоположението приложение / конзола и модифицирайте съдържанието със следния код. Можете да зададете различни видове опции за честота на графика. Можете да получите списъка от тази връзка. Тук се използва почасовият график.
пространство от имена App \ Console;използвайте Illuminate \ Console \ Scheduling \ Schedule;
използвайте Illuminate \ Foundation \ Console \ Kernel като ConsoleKernel;
клас Kernel разширява ConsoleKernel
/ **
* Командите Artisan, предоставени от вашето приложение.
*
* @var масив
* /
/ * Инициализирайте променливата $ command * /
защитени $ команди = [
'App \ Console \ Commands \ RegisterUsersList',
];
/ **
* Определете командния график на приложението.
*
* @param \ Illuminate \ Console \ Scheduling \ Schedule $ график
* @return void
* /
защитен график на функциите (график $ график)
/ * Задайте графика на час * /
$ график-> команда ('регистрирани: потребители') -> почасова ();
/ **
* Регистрирайте командите за приложението.
*
* @return void
* /
защитени команди на функция ()
$ this-> load (__ DIR__.'/ Команди');
изискват base_path ('маршрути / конзола.php ');
Създаване на изглед
Създайте регистриран списък.острие.php преглед на файл със следния код.
@if (count ($ userList)> 0)
Списъкът на потребителите, регистрирани днес, е даден по-долу:
@foreach ($ userList като $ user)
$ потребител-> име
@endforeach
@else
Все още няма регистриран потребител днес.
@endif
Изпълнете командата:
Изпълнете следните команди, за да изчистите кеша.
$ php занаятчийски кеш: изчисти$ php artisan config: кеш
Изпълнете следната занаятчийска команда от терминала, за да изпълните предварително създадената персонализирана команда и да проверите изхода.
Регистриран $ php занаятчия: потребителиПроверете имейл адреса на получателя, за да разберете изхода. Следният изход ще се появи, ако не е създаден потребител.
Създайте нов потребителски акаунт и проверете отново имейла.
Заключение
Планировщикът Laravel улеснява изпълнението на повтарящи се задачи за приложението. След като прочетат този урок, читателите вече трябва ясно да разбират концепциите за създаване на персонализирани команди и внедряване на автоматизирани задачи с помощта на Laravel Scheduler.