El content de este libro es dinámico, como casi todo el diseño web, y esto quiere decir que está en continua evolución. Te recomiendo que revises la página de vez en cuando para poder ver cómo va evolucionando.

Desarrollo web profesional con Laravel

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.