Curso casi completo de desarrollo web profesional con Laravel
Directorio de contenidos del libro
Recuerda revisar este directorio de vez en cuando ya que irá cambiando
El contenido del libro de Laravel se está actualizando a la versión 11
Introducción
Este capítulo trata de hacer una pequeña introducción a lo que es este curso que estás estudiando; se habla de la metodología usada y se da a conocer al autor.
Primeros pasos
Este capítulo trata sobre las instalaciones básicas de los distintos paquetes de software que vamos a necesitar para llevar a cabo las prácticas que se propondrán.
Patrón de diseño MVC
El patrón de diseño Modelo - Vista - Controlador es el mayoritariamente usado en Laravel; en este capítulo daremos un rodeo por todas sus partes para después, cuando avancemos en el curso, podamos reconocerlas y entender su cometido.
Creación del proyecto
Estudiaremos la instalación de una aplicación Laravel básica, con la que luego trabajeremos.
Dockerizando Laravel
Cuando nos dedicamos al diseño web, es probable que tengamos más de un proyecto en marcha al mismo tiempo y, para cada uno de ellos, debamos tener diferentes configuraciones de servidores, versiones de PHP, etc; Docker es una alternativa muy poderosa para poder tener cada proyecto en marcha encapsulado en su propio entorno. En este capítulo analizaremos cómo podemos hacer esto.
Estudio del proyecto
Una vez que nuestro proyecto ya está creado, vamos a analizar todos sus componentes, aunque solo sea de manera somera para irnos familiarizando con el entorno de trabajo. Más adelante se irán estudiando en mayor profundidad los componentes.
Enrutado básico
Comenzamos con el patrón de diseño MVC estudiando el primero de sus componentes: el enrutado.
Blade
Una de las principales características de Laravel es su motor de plantillas Blade. En este capítulo se estudia su funcionamiento.
Sistema de persistencia de datos
Comenzamos a trabajar con las bases de datos: modelos y migraciones.
Los controladores
Otro componente muy importante dentro del patrón de diseño MVC es el controlador; en este capítulo estudiaremos su encaje dentro del patrón.
API CRUD
CRUD: Create, Read, Update, Delete. Con lo que ya tenemos podemos crear nuestro primer crud.
Primer CRUD
A veces no necesitamos hacer uso de las vistas para realizar el crud, nos vasta con una API; Veremos lo que es y cómo se crean.
Sembrado de datos
Mientras trabajamos con nuestra aplicación es muy normal que queramos tener datos para poder ver cómo se comporta la aplicación con ellos; en este capítulo vamos a ver cómo podemos hacer un sembrado de datos ficticios o reales para poblar nuestras tablas.
Relaciones entre modelos
En un proyecto Laravel raramente usaremos un solo modelo; lo normal es que nuestro modelo de persistencia de datos se componga de más de un modelo, y normalmente también es normal que estos modelos estén relacionados entre sí. En este capítulo estudiaremos como trabaja Laravel con los modelos relacionales.
Los Middlewares
Laravel nos proporciona una construcción que nos permite crear reglas para el acceso a ciertas rutas. En este capítulo veremos qué son y como se trabaja con los Middlewares en Laravel. Concretamente vamos a estudiar cómo crear un sistema de autenticación para el servicio API.
Autenticación
Para establecer un sistema de autenticación, en Laravel, disponemos de varios stacks o paquetes que, una vez instalados, nos proporcionan de forma inmediata un servicio web con autenticación. En este capítulo daremos un vistazo general a los paquetes Breeze y Jetstream, que son los más conocidos.
File Storage
En este capítulo estudiamos cómo permitir la subida de archivos a los usuarios y cómo configurar el almacenamiento de estos.
Localización de contenidos
En muchas ocasiones debemos configurar nuestras aplicaciones para que presenten el interface público en varios idiomas, permitiéndole al usuario seleccionar qué idioma desea usar.
Envío de emails
En numerosas ocasiones el sistema (nuestra aplicación) deberá enviar emails de forma automática y desatendida; en este capítulo vamos a estudiar cómo hacerlo con Laravel.
Eventos
Estudiaremos en este capítulo el modo de generar eventos en Laravel y la generación de listeners que se ocupen de escuchar la emisión de estos eventos. Asímismo estudiaremos los observadores, que realizarán las tareas encomendadas cuando un modelo sufra un cambio. También estudiaremos en este capítulo la generación de comandos personalizados.
Vite
En este capítulo vamos a tratar sobre el Asset bundling a través de Vite, el cual nos va a ser de suma importancia cuando hacemos desarrollos monolíticos, es decir, cuando trabajamos en backend.
Generación de PDFs
Vamos a estudiar el modo de generar documentos PDF de forma automática.
Importar y exportar CSV
Los archivos con formato CSV son muy comunes como intercambio de información; aquí vamos a estudiar como importar esa información a nuestro sistema de persistencia, así como a generarlos a partir de los datos almacenados.
Implementación de un sistema de autorización
En este capítulo del libro se realiza, a modo de demostración, un paso a paso para crear un completo y robusto sistema de autorización usando Laravel. Haciendo uso de los paquetes de Jetstream, AdminLTE y Laravel Permission se crea un sistema de autenticación con muy poca progamación y unos resultados muy interesantes.
Testing en Laravel
El Testig es una herramienta fundamental de nuestros desarrollos y, a día de hoy, muchas empresas lo exigen. Y no es para menos! ya que los unit tests nos permiten detectar rápidamente, y en fase de desarrollo, si nuestro código esta generando bugs y si cumple con la lógica que esperamos.
Despliegue de la aplicación
No solo se trata de desarrollar nuestros proyectos, a continuación tenemos que ponerlos en producción y necesitaremos los conocimientos para hacerlo.
Livwire
Livewire es un sistema para desarrollo de componentes dinámicos basados en PHP y con vistas en Blade, que son capaces de reaccionar reactivamente en el lado del cliente con Ajax a cambios en los datos.
Jetstream
Laravel Jetstream es un paquete de inicio de aplicación especialmente diseñado para Laravel y proporciona el punto de partida perfecto para tus nuevos proyectos en Laravel. A continuación, te presentamos los principales componentes de Jetstream: Funcionalidad de inicio de sesión y registro.
Tinker
Tinker es una consola de comandos con la que podremos interactuar con todas las clases y métodos de nuestra aplicación, una herramienta muy útil a la hora de realizar pruebas de funcionamiento. Esto indica que estamos en la consola de tinker y desde ahora podemos ejecutar todos los métodos de nuestra aplicación.
Patrón Repositorio en Laravel
En Laravel, un patrón de diseño comúnmente utilizado para trabajar con bases de datos es el Repositorio (Repository). El patrón Repositorio se utiliza para abstraer la lógica de acceso a datos y proporcionar una interfaz coherente para interactuar con la base de datos.
spatie/laravel-permission
Manejar permisos y roles para nuestros usuarios dentro de una aplicación nos da una gran flexibilidad a la hora de tomar decisiones sobre a qué grupo de usuarios debemos mostrar algún tipo de contenido y a quienes debemos ocultárselos.
Laravel Filament
Laravel Filament es un paquete de código abierto desarrollado por el equipo de Laravel Beyond para facilitar la creación de impresionantes paneles de administración en aplicaciones Laravel. Filament proporciona una sólida capa de abstracción que te permite generar backends completos sin tener que programar interfaces tediosas. Ofrece componentes listos para usar como tablas, formularios, páginas y más.
Laravel Multitenant
Una aplicación Multitenant es una aplicación que a partir del mismo código base (proyecto Laravel) puede resolver diferentes lógicas de negocio. Normalmente existen 2 partes: la central, desde donde se dan de alta los inquilinos, y los propios inquilinos, donde se dan de alta sus clientes.
Proyecto ¿final?
Creo interesante realizar un proyecto final para aplicar los conocimientos adquiridos hasta ahora. De momento tengo pensado un proyecto con uso de tecnología GIS que pienso que puede aportar un poco más de conocimiento en la creación de una aplicación Laravel. Este proyecto va a conllevar el uso de herramientas ajenas al desarrollo mediante Laravel, pero que van a ser complementarias para la creación del proyecto: se usará la base de datos Postgres, pero esto no es ninguna novedad ya que para le programador va a ser transparente ..., pero es que ademas se usará la extensión PostGis para trabajar con bases de datos espaciales; usaremos también el gestor de mapas Geoserver que nos va a permitir el hacer uso de mapas temáticos almacenados en diferentes formatos; se usará, para consumir esta información, la librería Open Layers de javascript; usaremos el servidor web Nginx; y todo ello lo vamos a montar en varios contenedores Docker, con lo cual nos vamos a evitar la instalación de mucho software.