Los paquetes son la forma principal de agregar funcionalidad a Laravel. Los paquetes pueden ser cualquier cosa, desde una estupenda manera de trabajar con fechas como Carbon, o un framework completo de pruebas BDD como Behat.
Hay diferentes tipos de paquetes. Algunos paquetes son independientes, lo que significa que funcionan con cualquier framework de PHP. Carbon y Behat son ejemplos de paquetes independientes. Cualquiera de estos paquetes se puede usar con Laravel simplemente solicitándolos en el archivo composer.json.
Por otro lado, otros paquetes están específicamente destinados para su uso con Laravel. Estos paquetes pueden tener rutas, controladores, vistas y configuraciones específicamente diseñadas para mejorar una aplicación Laravel. Esta guía cubre principalmente el desarrollo de aquellos paquetes que son específicos de Laravel.
Además de soporte para enviar correos electrónicos, Laravel brinda soporte para el envío de notificaciones mediante una variedad de canales de entrega, incluyendo correo, SMS (a través de Nexmo) y Slack. Las notificaciones pueden ser también almacenadas en una base de datos para que puedan ser mostradas en la interfaz de tu página web.
Generalmente, las notificaciones deben ser mensajes cortos e informativos que notifiquen a los usuarios que algo ocurrió en tu aplicación. Por ejemplo, si estás escribiendo una aplicación de facturación, podrías enviar una notificación de «Recibo de Pago» a tus usuarios mediante correo electrónico y por SMS.
Crear notificaciones
En Laravel, cada notificación está representada por una sola clase (generalmente almacenada en el directorio app/Notifications). No te preocupes si no ves este directorio en tu aplicación, será creado por ti cuando ejecutes el comando Artisan make:notification:
php artisan make:notification InvoicePaid
Este comando colocará una clase de notificación nueva en tu directorio app/Notifications. Cada clase de notificación contiene un método via y un número variable de métodos de construcción de mensaje (tales como toMail o toDatabase) que convierten la notificación en un mensaje optimizado para ese canal en particular.
Laravel proporciona una API limpia y simple sobre la popular biblioteca SwiftMailer con drivers para SMTP, Mailgun, Postmark, Amazon SES y sendmail, permitiéndote comenzar rápidamente a enviar correos a través de un servicio local o en la nube de tu elección.
Laravel incluye una variedad de funciones «helpers» globales de PHP. Muchas de esas funciones son usadas por el mismo framework; sin embargo, eres libre de usarlas en tus aplicaciones si lo encuentras conveniente.
Laravel proporciona una poderosa abstracción del sistema de archivos gracias al genial paquete de PHP Flysystem de Frank de Jonge. La integración de Flysystem de Laravel proporciona drivers simples de usar para trabajar con sistemas de archivos locales y Amazon S3. Aún mejor, es maravillosamente simple cambiar entre estas opciones de almacenamiento de modo que la API permanezca sin cambios para cada sistema.
Configuración
La configuración del sistema de archivos está ubicada en config/filesystems.php. Dentro de este archivo puedes configurar todos tus «discos». Cada disco representa un driver de almacenamiento y una ubicación de almacenamiento en particular. Configuraciones de ejemplo para cada driver soportado están incluidas en el archivo de configuración. Así que, modifica la configuración para reflejar tus preferencias de almacenamiento y credenciales.
Puedes configurar tantos discos como quieras e incluso tener múltiples discos que usen el mismo driver.
Los eventos de Laravel proporcionan una implementación de observador simple, lo que permite suscribirse y escuchar diversos eventos que ocurren en tu aplicación. Las clases de eventos normalmente se almacenan en el directorio app/Events, mientras que tus oyentes se almacenan en app/Listeners. No te preocupes si no ves estos directorios en tu aplicación, ya que se crearán para ti cuando generes eventos y oyentes utilizando los comandos de consola Artisan.
Los eventos sirven como una excelente manera de desacoplar varios aspectos de tu aplicación, ya que un solo evento puede tener múltiples oyentes que no dependen entre sí. Por ejemplo, es posible que desees enviar una notificación de Slack a tu usuario cada vez que se envíe un pedido. En lugar de acoplar tu código de procesamiento de pedidos a tu código de notificación Slack, puedes generar un evento OrderShipped, que un oyente puede recibir y transformar en una notificación Slack.
Registro de eventos y oyentes
El EventServiceProvider incluido en tu aplicación Laravel proporciona un lugar conveniente para registrar todos los oyentes de eventos de tu aplicación. La propiedad listen contiene un arreglo de todos los eventos (claves) y sus oyentes (valores). Puedes agregar tantos eventos a este arreglo como lo requiera tu aplicación. Por ejemplo, agreguemos un evento OrderShipped:
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
'App\Events\OrderShipped' => [
'App\Listeners\SendShipmentNotification',
],
];
La clase Illuminate\Support\Collection provee una interfaz fluida y conveniente para trabajar con arreglos de datos. Por ejemplo, mira el siguiente código. Usaremos la función helper collect para crear una nueva instancia de Collection pasando un arreglo como parámetro, se ejecuta la función strtoupper en cada elemento y luego elimina todos los elementos vacíos:
Como puedes ver, la clase Collection te permite encadenar sus métodos para realizar un mapeo fluido y reducir el arreglo subyacente. En general, las colecciones son inmutables, es decir, cada método de Collection retorna una nueva instancia de Collection.
Laravel proporciona una API expresiva y unificada para varios backends de almacenamiento de caché. La configuración de caché está ubicada en config/cache.php. En este archivo puedes indicar el controlador de caché que desees utilizar por defecto en toda tu aplicación. Laravel es compatible con los almacenamientos en caché más populares, tales como Memcached y Redis.
El archivo de configuración de caché contiene otras opciones adicionales, las cuales están documentadas dentro del mismo archivo, por lo que deberás asegurarte de revisar estas opciones. Por defecto, Laravel está configurado para utilizar el controlador de caché file, que almacena los objetos serializados y almacenados en caché en el sistema de archivos. Para aplicaciones más grandes, es recomendable que utilices un controlador más robusto como Memcached o Redis. Incluso puedes configurar múltiples configuraciones de caché para el mismo controlador.
En muchas aplicaciones web modernas, los WebSockets son usados para implementar interfaces de usuarios actualizadas en tiempo real. Cuando algún dato es actualizado en el servidor, un mensaje es típicamente enviado a través de una conexión WebSocket para ser manejado por el cliente. Esto proporciona una alternativa más robusta y eficiente para monitorear continuamente tu aplicación en busca de cambios.
Para asistirte en la construcción de ese tipo de aplicaciones, Laravel hace fácil «emitir» tus eventos a través de una conexión WebSocket. Emitir tus eventos te permite compartir los mismos nombres de eventos entre tu código del lado del servidor y tu aplicación JavaScript del lado de cliente.
Antes de sumergirnos en la emisión de eventos, asegúrate de haber leído toda la documentación de Laravel sobre eventos y listeners.
Artisan es la interfaz de línea de comando incluida con Laravel. Provee un número de comandos útiles que pueden ayudarte mientras construyes tu aplicación. Para ver una lista de todos los comandos Artisan disponibles, puedes usar el comando list:
php artisan list
También cada comando incluye una «ayuda» en pantalla, la cual muestra y describe los argumentos y opciones disponibles. Para ver una pantalla de ayuda, coloca help antes del nombre del comando:
Styde usa cookies para guardar tus preferencias y para seguimiento anónimo AceptarLeer más
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.