Se requieren que algunas tareas funcionen regularmente en cualquier aplicación, y sería más eficiente si las tareas se pudieran realizar automáticamente. El marco de Laravel facilita este tipo de tareas mediante el uso de Laravel Scheduler. Enviar correos electrónicos masivos relacionados con la oferta, optimizar datos, generar informes, mantener una copia de seguridad de la aplicación y eliminar a los usuarios inactivos son algunos ejemplos comunes de las tareas repetitivas que se pueden realizar con el programador de Laravel. Laravel puede ejecutar tareas específicas periódicamente mediante el uso de un administrador de tareas incorporado nombrado
Maíz trabajo. El archivo de configuración nombrado
Maíz se usa por
Maíz Para administrar tareas de programación. Este tutorial le muestra cómo administrar las tareas repetitivas creando
Maíz trabajos y realizar la programación de tareas.
Requisitos previos
Antes de comenzar este tutorial, primero, complete las siguientes tareas:
- Crear un nuevo proyecto de Laravel
- Configurar la conexión de la base de datos
- Ejecutar el comando migrate Crear una tabla de usuario
- Configurar la configuración para enviar correos electrónicos (SMTP se usa aquí para enviar correos electrónicos.)
Implementar autenticación predeterminada
Primero, implementa el sistema de autenticación de usuario predeterminado de Laravel para completar la tarea de programación que se muestra en este tutorial. Ejecute los siguientes comandos desde el terminal para implementar la autenticación predeterminada de Laravel usando Vue.
$ compositor requiere laravel/ui
$ php artesan ui vue -auth
Ejecute el siguiente comando para compilar el andamio fresco para obtener el contenido actualizado.
$ npm instalación && npm ejecutar dev
Ejecute el siguiente comando para borrar el caché de ruta.
$ PHP Ruta artesanal: claro
Ejecute el siguiente comando para iniciar el servidor de desarrollo de Laravel y verificar si el sistema de autenticación de usuario predeterminado está funcionando.
$ Php Artisan Servir
Abra cualquier navegador y ejecute la siguiente URL en el navegador. Si el acceso y registro El enlace aparece y funciona correctamente, luego la implementación de la autenticación predeterminada se ha completado correctamente.
http: // localhost: 8000
Crear una clase por correo y un comando artesanal
Muchos usuarios nuevos crearán cuentas diariamente y realizarán muchas tareas relacionadas con los usuarios registrados cuando el proyecto esté en línea. A veces, la aplicación necesita saber cuántos usuarios han creado cuentas cada día. Si esta información se requiere regularmente, entonces es mejor ejecutar una consulta particular después de un intervalo regular. Aquí se utiliza un comando Laravel para obtener la información de los usuarios registrados actualmente y se utiliza una clase por correo para enviar esa información por correo electrónico al administrador o a una persona específica.
Ejecute el siguiente comando para crear la clase de correo electrónico para enviar el correo electrónico. Creará un archivo llamado SendUsersList.php en la ubicación aplicación/correo.
$ PHP Artisan Make: Mail SendUsersList
Abra el archivo y modifique el contenido, como en el siguiente código.
Aplicación de espacio de nombres \ mail;
use iluminate \ bus \ queeable;
use iluminar \ contracts \ queue \ deberíaqueue;
use iluminate \ mail \ mailable;
usar iluminado \ queue \ SerializesModels;
SendUsersList de clase se extiende por correo
Use queable, SerializeModels;
/ * Declarar una variable de matriz */
public $ uslist = array ();
/**
* Crear una nueva instancia de mensaje.
*
* @return void
*/
función pública __construct ($ uslist)
/* Inicializar la variable de matriz por la variable pasada por el
Creación de objetos de la clase. */
$ this-> userList = $ uslist;
/**
* Construir el mensaje.
*
* @return $ esto
*/
Función pública Build ()
/ * DiaPlay el archivo de vista con los valores de la variable de matriz */
devolver $ this-> ver ('registreedlist')-> con ('userList', $ this-> userList);
Ejecute el siguiente comando para crear el comando Laravel personalizado nombrado RegisterUsersList, que ejecutará la consulta para obtener la lista de información de usuarios registrados en cada día. El comando creará un archivo llamado RegisterUsersList.php en la ubicación Aplicación/comandos.
$ PHP Artisan Make: Command RegisterUsersList --Command = Registrado: Usuarios
Abra el archivo y modifique el contenido con el siguiente código para enviar la lista de usuarios actualmente registrados del sistema actual a una dirección de correo electrónico particular.
espacio de nombres App \ Console \ comandos;
use el comando iluminate \ console \;
/ * Importar paquetes necesarios */
usar el correo;
use la aplicación \ mail \ sendusersList;
usar db;
usar carbono \ carbono;
use App \ Console \ comandos \ DateTime;
Class RegisterUsersList extiende el comando
/**
* El nombre y la firma del comando de la consola.
*
* @var cadena
*/
/ * Agregar valor de firma */
protegido $ firature = 'registrado: usuarios';
/**
* La descripción del comando de la consola.
*
* @var cadena
*/
protegido $ Descripción = 'Lista de usuarios registrados';
/**
* Crear una nueva instancia de comando.
*
* @return void
*/
función pública __construct ()
padre :: __ construct ();
/**
* Ejecutar el comando de consola.
*
* @return int
*/
Mango de la función pública ()
/ * Lea la fecha actual del sistema */
$ Today = Carbon :: Now ()-> TODATESTRING ();
/* Obtenga la lista de información de los usuarios que están registrados
En la fecha actual del sistema */
$ curtent_registered_users =
Db :: table ('usuarios')-> wheredate ('create_at', $ Today)-> get ()-> toArray ();
/* Crear el objeto de la clase de correo electrónico con la variable de matriz
que contiene la lista de usuarios actualmente registrada */
$ correo electrónico = new SendUsersList ($ current_registered_users);
/ * Enviar correo electrónico usando la clase de correo */
Correo :: a ('Dirección de correo electrónico del receptor')-> Enviar ($ correo electrónico);
Configure el horario para ejecutar el comando
Abre el Núcleo.php Archivo desde la ubicación aplicación y modifique el contenido con el siguiente código. Puede establecer diferentes tipos de opciones de frecuencia de horario. Puede obtener la lista de este enlace. Aquí, se usa el horario por hora se usa.
Aplicación de espacio de nombres \ Consola;
use Illuminate \ Console \ Prochuling \ Program;
use Illuminate \ Foundation \ Console \ Kernel como ConsoleKernel;
El núcleo de clase extiende consolekernel
/**
* Los comandos artesanales proporcionados por su aplicación.
*
* @Var Array
*/
/ * INTIALIZAR la variable de comandos $ */
Comandos $ protegidos = [[
'APP \ Console \ Comandos \ RegistroUsersList',
];
/**
* Defina el programa de comandos de la aplicación.
*
* @param \ Illuminate \ Console \ Programación \ Programa $
* @return void
*/
Programa de funciones protegidas (Anexo $ Anexo)
/ * Establecer el horario por hora */
$ programar-> comando ('Registrado: Usuarios')-> Hourly ();
/**
* Registre los comandos para la aplicación.
*
* @return void
*/
Comandos de función protegida ()
$ this-> load (__ dir__.'/Comandos');
requiere base_path ('rutas/consola.php ');
Crear vista
Crear el lista registrada.cuchilla.php Ver archivo con el siguiente código.
@if (Count ($ UserList)> 0)
La lista de usuarios registrados hoy se proporciona a continuación:
@ForEach ($ UserList como $ usuario)
$ user-> name
@endforeach
@demás
Ningún usuario está registrado hoy.
@terminara si
Ejecute el comando:
Ejecute los siguientes comandos para borrar el caché.
$ PHP Cache artesanal: claro
$ PHP CONFIGURACIÓN ARTISAN: caché
Ejecute el siguiente comando artesanal desde el terminal para ejecutar el comando personalizado previamente creado y verifique la salida.
$ PHP Artisan Registrado: Usuarios
Verifique la dirección de correo electrónico del receptor para averiguar la salida. La siguiente salida aparecerá si no se crea un usuario.
Cree una nueva cuenta de usuario y revise el correo electrónico nuevamente.
Conclusión
El programador de Laravel hace que las tareas repetitivas sean más fáciles de realizar para la aplicación. Después de leer este tutorial, los lectores ahora deben tener una comprensión clara de los conceptos de crear comandos personalizados e implementar tareas automatizadas utilizando Laravel Scheduler.