El ecosistema Laravel
Lección 6 / 8
Laravel Guía Laravel
Cuando definimos a Laravel como un framework, queremos decir que Laravel ofrece a los desarrolladores de php una estructura de soporte y funciones genéricas que pueden usarse para crear el contenido real de la aplicación única. Por lo tanto, es un código escrito por terceros que permite resolver un problema común, similar a una biblioteca de software.
Sin embargo, la diferencia entre biblioteca y framework está relacionada con la forma en que intervienen en el flujo de ejecución de la aplicación. Al usar una biblioteca, el desarrollador elige cuándo llamar a una determinada función de la biblioteca, manteniendo así un control total sobre el flujo. Sin embargo, cuando se usa un framework, es el framework el que determina cómo y dónde se pueden implementar ciertas funciones para que realmente se puedan llamar y ejecutar, realizando lo que llama "inversión de control".
Obviamente un framework puede hacer uso de bibliotecas (haciéndolas visibles u ocultándolas al desarrollador web) para implementar comportamientos específicos.
Laravel se basa en algunos paquetes bien establecidos del mundo del lenguaje PHP para ofrecer las funciones básicas necesarias para una aplicación web. Este conjunto de paquetes y estructuras definidas por Laravel se denominan Laravel Framework y podemos decir que corresponden aproximadamente al paquete Composer llamado, precisamente, laravel/framework.
El equipo de Laravel ofrece algunos paquetes de Composer adicionales que conforman el llamado first-party ecosystem, es decir, el ecosistema básico de Laravel desarrollado y mantenido directamente por el equipo de Laravel y diseñado para satisfacer algunas necesidades específicas de quienes desarrollan con Laravel.
Estos paquetes se pueden considerar como extensiones del framework base, ya que a menudo ofrecen soluciones a ciertos problemas específicos mientras mantienen el enfoque de "inversión de control" típico del framework.
Paquetes específicos de Laravel
En la siguiente lista hemos llevado los paquetes desarrollados y patrocinados directamente por el equipo de Laravel que ofrecen soluciones a problemas específicos. Son necesidades que no son comunes en todas las aplicaciones web, pero que, en caso de tener que ayudarles, sería óptimo tenerlas como una extensión del framework y no como una librería.
En estricto orden alfabético, los paquetes "extra" actualmente mantenidos directamente por el equipo de Laravel son:
- Cashier - interfaz para servicios de pago de suscripción de Stripe
- Dusk - realizar pruebas automáticas del navegador
- Echo - desarrollo de aplicaciones con broadcasting de los eventos a través de WebSocket
- Horizon - dashboard para monitorear job y queue Laravel que usan Redis
- Nova - diseños de interfaz y dashboard de admin (de pago)
- Octane - aprovecha los application server Open Swoole, Swoole, and RoadRunner para aumentar el rendimiento
- Pint - linter/fixed del código PHP en estilo Laravel
- Sail - mantiene un entorno de desarrollo basato en Docker
- Sanctum - sistema de autenticación para aplicaciones SPA y mobile basado en token
- Scout - añade “full-text search” al propio database
- Socialite - autenticación social con Facebook, Twitter, GitHub, LinkedIn y demás
- Spark - permite ofrecer planes de suscripción para el propio servicio (de pago)
- Telescope - debug de todo lo que sucede en la aplicación en el propio entorno de desarrollo
Starter Kit de Laravel
Con el término starter kit el equipo de Laravel actualmente indica dos paquetes específicos de Composer que amplían las funciones básicas de una aplicación de Laravel que necesita administrar la autenticación de usuarios.
Los dos starter kits actualmente disponibles se llaman Breeze y JetStream. Ambos simplifican y automatizan la creación de rutas, controladores y vistas (más adelante veremos a qué se refieren estos términos) necesarios para registrar y autenticar a los usuarios.
Ambos deben instalarse a través de Composer (composer require laravel/breeze --dev o composer require laravel/jetstream) después de lo cual será el desarrollador quien indique o elija el modo específico en el que se usará el starter kit.
De hecho, al crear aplicaciones web que impliquen la autenticación de usuarios, será de particular importancia elegir cómo la parte frontend de la aplicación, es decir, la que se ejecuta en el navegador de los usuarios, se comunicará con la parte backend de la aplicación misma, es decir, el uno que se ejecuta con PHP y Laravel en el servidor. Según el método y la elección realizada para implementar la interfaz, los dos starter kits se configurarán y utilizarán de diferentes maneras.
NOTA: Aunque no se considera un starter kit, ya que no ofrece soporte para funciones relacionadas con la autenticación, vale la pena mencionar la existencia del paquete laravel/ui Composer.
Deployment
Una mención final muy breve de los servicios (de pago) ofrecidos por el equipo de Laravel, todos enfocados en administrar el deployment de aplicaciones Laravel en producción, pero con diferencias entre los métodos y entornos de deploy soportados:
- Envoyer: deployment y monitoreo de aplicaciones Laravel
- Forge: server management y deploy management
- Vapor: plataforma de deployment serverless, basado en AWS Lambda
Anterior
5 Laravel, el framewor..Siguiente
7 Estructura de un pro..