Prerrequisitos
Antes de comenzar este tutorial, primero, complete las siguientes tareas:
- Crea un nuevo proyecto de Laravel
- Configurar la conexión a la base de datos
- Ejecute el comando migrate crear una tabla de usuario
- Configure la configuración para enviar correos electrónicos (aquí se usa SMTP para enviar correos electrónicos).)
Implementar la autenticación predeterminada
Primero, implemente 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 la terminal para implementar la autenticación predeterminada de Laravel usando Vue.
$ composer requiere laravel / ui$ php artisan ui vue -auth
Ejecute el siguiente comando para compilar el andamio nuevo para obtener el contenido actualizado.
$ npm install && npm run devEjecute el siguiente comando para borrar la memoria caché de la ruta.
$ php ruta artesanal: claraEjecute el siguiente comando para iniciar el servidor de desarrollo de Laravel y verifique si el sistema de autenticación de usuario predeterminado está funcionando.
$ php servicio artesanal
Abra cualquier navegador y ejecute la siguiente URL en el navegador. Si el acceso y Registrarse aparece el enlace y funciona correctamente, entonces la implementación de la autenticación predeterminada se ha completado correctamente.
http: // localhost: 8000
Crear una clase que se pueda enviar por correo y un comando artesanal
Muchos usuarios nuevos crearán cuentas a diario 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 de forma regular, entonces es mejor ejecutar una consulta en particular después de un intervalo regular. Aquí se usa un comando de Laravel para obtener la información de los usuarios registrados actualmente y se usa una clase mailable para enviar esa información por correo electrónico al administrador o una persona específica.
Ejecute el siguiente comando para crear la clase mailable para enviar el correo electrónico. Creará un archivo llamado SendUsersList.php en el lugar aplicación / correo.
$ php artisan make: mail SendUsersListAbra el archivo y modifique el contenido, como en el siguiente código.
espacio de nombres App \ Mail;use Illuminate \ Bus \ Queueable;
use Illuminate \ Contracts \ Queue \ ShouldQueue;
use Illuminate \ Mail \ Mailable;
use Illuminate \ Queue \ SerializesModels;
clase SendUsersList extiende Mailable
use Queueable, SerializesModels;
/ * Declarar una variable de matriz * /
public $ userList = array ();
/ **
* Crear una nueva instancia de mensaje.
*
* @return void
* /
función pública __construct ($ userList)
/ * Inicializar la variable de matriz por la variable pasada por el
creación de objeto de la clase. * /
$ this-> userList = $ userList;
/ **
* Construye el mensaje.
*
* @return $ esto
* /
función pública build ()
/ * Muestra el archivo de vista con los valores de la variable de matriz * /
return $ this-> view ('registradoList') -> with ('userList', $ this-> userList);
Ejecute el siguiente comando para crear el comando personalizado de Laravel llamado RegistrarseUsersList, que ejecutará la consulta para obtener la lista de información de los usuarios registrados en cada día. El comando creará un archivo llamado RegistrarseUsersList.php en el lugar aplicación / Comandos.
$ php artisan make: comando RegisterUsersList --command = registrados: usuariosAbra el archivo y modifique el contenido con el siguiente código para enviar la lista de usuarios registrados actualmente del sistema actual a una dirección de correo electrónico en particular.
espacio de nombres App \ Console \ Commands;use Illuminate \ Console \ Command;
/ * Importar paquetes necesarios * /
usar correo;
use App \ Mail \ SendUsersList;
utilizar DB;
use Carbon \ Carbon;
use App \ Console \ Commands \ DateTime;
class RegisterUsersList extiende el comando
/ **
* El nombre y la firma del comando de la consola.
*
* @var cadena
* /
/ * Agregar valor de firma * /
protegido $ firma = 'registrados: usuarios';
/ **
* La descripción del comando de la consola.
*
* @var cadena
* /
protected $ description = 'Lista de usuarios registrados';
/ **
* Crear una nueva instancia de comando.
*
* @return void
* /
función pública __construct ()
padre :: __ construct ();
/ **
* Ejecutar el comando de la consola.
*
* @return int
* /
identificador de función pública ()
/ * Leer la fecha actual del sistema * /
$ hoy = Carbon :: ahora () -> toDateString ();
/ * Obtener la información de la lista de usuarios que están registrados
en la fecha actual del sistema * /
$ current_registered_users =
DB :: table ('usuarios') -> whereDate ('created_at', $ hoy) -> get () -> toArray ();
/ * Crea el objeto de la clase mailable con la variable de matriz
que contiene la lista de usuarios registrados actualmente * /
$ email = new SendUsersList ($ current_registered_users);
/ * Enviar correo electrónico usando la clase de correo * /
Mail :: to ('dirección de correo electrónico del destinatario') -> enviar ($ email);
Configurar el programa para ejecutar el comando
Abre el Núcleo.php archivo de la ubicación aplicación / consola y modificar el contenido con el siguiente código. Puede configurar diferentes tipos de opciones de frecuencia de programación. Puede obtener la lista desde este enlace. Aquí, se usa el horario por horas.
espacio de nombres App \ Console;use Illuminate \ Console \ Scheduling \ Schedule;
use Illuminate \ Foundation \ Console \ Kernel como ConsoleKernel;
clase Kernel extiende ConsoleKernel
/ **
* Los comandos Artisan proporcionados por su aplicación.
*
* @var matriz
* /
/ * Inicializar la variable $ comandos * /
$ comandos protegidos = [
'Aplicación \ Consola \ Comandos \ RegisterUsersList',
];
/ **
* Definir el programa de comandos de la aplicación.
*
* @param \ Illuminate \ Console \ Scheduling \ Schedule $ horario
* @return void
* /
horario de función protegida (horario $ horario)
/ * Establecer el horario cada hora * /
$ horario-> comando ('registrados: usuarios') -> por hora ();
/ **
* Registrar los comandos para la aplicación.
*
* @return void
* /
comandos de función protegida ()
$ esto-> cargar (__ DIR__.'/ Comandos');
require base_path ('rutas / consola.php ');
Crear vista
Crea el registradoLista.espada.php ver archivo con el siguiente código.
@if (recuento ($ userList)> 0)
La lista de usuarios registrados hoy se da a continuación:
@foreach ($ userList como $ usuario)
$ usuario-> nombre
@endforeach
@demás
Ningún usuario está registrado hoy todavía.
@terminara si
Ejecute el comando:
Ejecute los siguientes comandos para borrar el caché.
$ php caché artesanal: borrar$ php artisan config: caché
Ejecute el siguiente comando artesanal desde la terminal para ejecutar el comando personalizado creado anteriormente y verifique la salida.
$ php artisan registrados: usuariosVerifique la dirección de correo electrónico del destinatario para averiguar la salida. La siguiente salida aparecerá si no se crea ningún 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 creación de comandos personalizados e implementación de tareas automatizadas utilizando Laravel Scheduler.