
Bienvenida al curso Dominando Laravel.
Si necesitas una introducción a Laravel te recomiendo tomar mi otro curso Crea tu primer sitio web con Laravel totalmente gratis utilizando el cupón: DOMINANDOLARAVEL
Para encontrarlo puedes ir a mi perfil y luego darle clic al curso y utiliza el cupón para acceder gratuitamente.
En esta lección instalamos y configuramos lo necesario para trabajar con Laravel en MAC. Instalamos y configuramos php, mysql, Laravel Valet y Sequel Pro.
En esta lección revisamos algunos editores de código e instalaremos Sublime Text que es el que utilizaremos durante el curso.
En esta lección instalamos el instalador de paquetes de Sublime, mejoramos su apariencia con el tema Material Theme, e instalamos un resaltador de sintaxis para Laravel Blade.
En esta lección instalamos y configuramos el paquete PHP Companion para que Sublime Text entienda mejor el código PHP que escribiremos.
En esta lección te voy a mostrar cómo personalizar las preferencias de Sublime Text 3
En esta lección agregamos iconos de archivos en la barra lateral de Sublime e instalamos un paquete para crear archivos con mayor facilidad y rapidez.
Es esta lección revisamos rápidamente qué contiene cada una de las carpetas en una nueva instalación de Laravel.
En esta lección aprendemos qué son las rutas y cómo utilizarlas en Laravel.
En esta lección aprendemos qué son las rutas con nombre y porqué es importante utilizarlas.
En esta lección aprendemos algunas formas de retornar Html en nuestra aplicación y cómo pasar variables.
En esta lección aprendemos los fundamentos del motor de plantillas de Laravel, Blade.
En esta lección aprendemos a escribir estructuras de control de PHP utilizando Laravel Blade.
En esta lección aprendemos qué son y cómo utilizar controladores para mejorar la estructura de nuestras aplicaciones.
En esta lección aprendemos a crear controladores resource y API, y cómo generar sus rutas. También vemos cómo modificar los verbos create y edit.
En esta lección aprendemos a activar los links de navegación para indicar al usuario en qué página se encuentra, y agregamos un archivo adicional (helpers.php) para almacenar este tipo de funciones.
En esta lección aprendemos a enviar y a procesar formularios con Laravel.
En esta lección aprendemos los aspectos más importantes sobre la validación de formularios en Laravel.
En esta lección aprendemos cómo permitir traducciones en los mensajes de validación, cómo personalizarlos y cómo traducir contenido estático en nuestras aplicaciones.
En esta lección aprendemos a enviar emails en Laravel utilizando como ejemplo el formulario de contacto. También aprendemos a utilizar Mailtrap en local y Sendgrid en producción.
En esta lección aprendemos qué son y cómo funcionan las variables de entorno y configuramos la conexión de Laravel a la base de datos mysql.
En esta lección aprendemos cómo crear y modificar tablas en la base de datos utilizando las migraciones.
En esta lección aprendemos a obtener datos de la base de datos utilizando el ORM de Laravel llamado Eloquent. También aprendemos a ordenar y paginar los resultados.
En esta lección aprendemos a consultar registros individuales con Eloquent
En esta lección agregamos urls amigables para los proyectos y en el proceso aprendemos sobre Route Model Binding.
En esta lección creamos un formulario para insertar nuevos proyectos en la base de datos
En esta lección aprendemos qué es la asignación masiva y por qué es un problema de seguridad que debemos considerar.
En esta lección aprendemos a utilizar Form Requests para extraer validaciones complejas a clases dedicadas.
En esta lección creamos el formulario para editar proyectos y utilizamos Eloquent para actualizarlos en la base de datos.
En esta lección aprendemos a utilizar el mismo formulario tanto para crear como para editar registros y así evitar duplicaciones.
En esta lección agregamos un botón dentro de la vista show que nos permita eliminar proyectos, y para ello, agregamos la última de las rutas REST que responda a la petición DELETE.
En esta lección utilizamos Route Resource para simplificar el archivo de rutas web.
En esta lección aprendemos a utilizar mensajes de sesión para dar retroalimentación al usuario de las acciones que realiza en nuestra aplicación.
En esta lección aprendemos a implementar y modificar el comportamiento del login y registro para que se adapte a las necesidades de nuestra aplicación.
En esta lección utilizamos Middlewares para restringir el acceso a ciertas rutas y que sólamente usuarios autenticados puedan crear editar y eliminar proyectos.
En esta lección aprendemos a compilar y comprimir archivos css y javascript en nuestras aplicaciones utilizando Laravel Mix.
En esta lección utilizamos Bootstrap 4 para diseñar la navegación, la estructura base de la plantilla y el formulario de contacto.
En este video hacemos un rápido repaso de lo que vamos a aprender en esta sección
En esta lección aprendemos a utilizar la regla de validación unique tanto para crear como para actualizar registros
En esta lección aprendemos a subir imágenes para que cada proyecto tenga una.
En esta lección explicamos cómo funciona el comando storage:link y cómo mostrar imágenes desde la carpeta storage.
En esta lección aprendemos las diferentes opciones que nos provee Laravel para validar imágenes.
En esta lección aprendemos a actualizar las imágenes de los proyectos y que se eliminen automáticamente del servidor las que se estén utilizando.
En esta lección aprendemos a optimizar automáticamente las imágenes que subimos al servidor, utilizando el paquete intervention/image en Laravel 6
En esta lección aprendemos qué son,cómo funcionan, y cómo utilizar los Eventos y Listeners en Laravel.
En esta lección aprendemos a utilizar queues o colas de trabajos, para delegar procesos que consumen tiempo, como en este caso, la optimización de las imágenes de los proyectos.
En esta lección aprendemos qué hacer cuando un Job falla y cómo funciona el proceso de reintentar ejecutar Jobs fallidos.
En esta lección aprendemos a definir bases de datos relacionales utilizando las migraciones de Laravel, qué hacer cuando se actualiza o elimina un registro y cómo manejar los errores al ejecutarlas.
Una vez que tenemos definida la relación a nivel de bases de datos, vamos a aprender a definirlas a nivel de código utilizando el ORM de Laravel: Eloquent.
En esta lección aprendemos a desplegar un select con información de la base de datos, y permitimos que se puedan asociar proyectos con categorías.
En esta lección aprendemos sobre el problema de consultas N+1, cómo detectarlo y cómo solucionarlo modificando las consultas con Eloquent.
En esta lección permitimos filtrar proyectos por su categoría asociada y reutilizamos la vista index para evitar duplicar código.
En esta lección aprendemos qué son los tests automatizados, por qué deberíamos utilizarlos y cómo ejecutarlos en nuestras aplicaciones hechas con Laravel.
En esta lección aprendemos sobre los Factories o Fábricas, cómo nos ayudan a mejorar la legibilidad de nuestros tests, y cómo crear registros de prueba en la base de datos.
En esta lección aprendemos a utilizar Colecciones con varios ejemplos prácticos y revisamos también la diferencia entre Colecciones Base y Colecciones de Eloquent.
En esta lección aprendemos qué es la Autorización, en qué se diferencia con la Autenticación y cómo utilizar Gates o Puertas de Acceso en Laravel.
En esta lección aprendemos cómo funcionan las Políticas de Acceso en Laravel y cómo podemos utilizarlas en conjunto con Gates, para autorizar acciones de un usuario sobre un modelo.
En esta lección aprendemos a utilizar soft deletes para crear un pequeño sistema que nos permita eliminar, restaurar y eliminar permanentemente registros en la base de datos.
En esta lección veremos las opciones que disponibles para actualizar cualquier aplicación de Laravel a la versión más reciente.
En esta lección publicamos la aplicación de Laravel en la plataforma de Apps de Digital Ocean.
Obtén $100 de crédito para utilizar en DigitalOcean siguiendo este link http://apr.li/do
En esta lección veremos qué son, cómo funcionan las rutas en Laravel y cómo cargar vistas html.
En esta lección veremos cómo utilizar las vistas para mostrar HTML al usuario final
En esta lección veremos cómo utilizar plantillas para evitar repetir código en las vistas.
En esta lección veremos cómo reestructurar nuestro código utilizando controladores
En esta lección veremos cómo manejar las peticiones http, llamadas requests en inglés
En esta lección veremos cómo validar los formulario o cualquier petición HTTP.
En esta lección veremos cómo enviar respuestas del lado del servidor.
En esta lección veremos qué son y cómo se utilizan los middlewares.
En esta lección configuraremos lo necesario para utilizar bases de datos en Laravel.
En esta lección veremos cómo llevar un control de los cambios que realicemos en las bases de datos.
En esta lección revisaremos el diseño de arquitectura de software llamado REST.
En esta lección implementaremos el diseño REST utilizando el constructor de consultas de Laravel.
En esta lección continuamos con la implementación el diseño REST utilizando el constructor de consultas de Laravel
En esta lección veremos qué es Eloquent y cómo utilizarlo.
En esta lección veremos cómo proteger páginas a las que sólo puedan acceder usuarios autenticados.
En esta lección veremos cómo utilizar preprocesadores de CSS y mejoraremos la apariencia del sitio con Bootstrap 3
En esta lección veremos cómo combinar archivos y como utilizar browserSync
En esta lección implementaremos un sistema de acceso de usuarios basado en roles
En esta lección continuaremos con el sistema de usuarios y roles, y en el proceso aprenderemos a utilizar relaciones en Eloquent
En esta lección continuaremos con el sistema de usuarios y en el proceso aprenderemos a utilizar tinker y a definir relaciones de muchos a muchos con Eloquent
En esta lección veremos cómo utilizar lar regla de validación UNIQUE al actualizar el email del usuario.
En esta lección veremos cómo implementar políticas de acceso en nuestra aplicación.
En esta lección utilizaremos las ventajas de la clase Collection que viene con Laravel, para reestructurar el código de nuestra aplicación.
En esta lección veremos cómo guardar relaciones hasOne y hasMany con Eloquent
En esta lección veremos cómo guardar relaciones de muchos a muchos con Eloquent
En esta lección veremos cómo utilizar y para qué sirven las relaciones polimórficas en Eloquent.
En esta lección veremos cómo utilizar relaciones polimórficas belongsToMany con Eloquent.
En esta lección veremos cómo evitar el problema N+1 utilizando eager loading en Eloquent.
En esta lección veremos cómo enviar emails en un entorno de desarrollo local utilizando mailtrap.io
En esta lección veremos cómo enviar emails en un entorno de producción utilizando sparkpopst
En esta lección veremos qué son y cómo utilizar eventos.
En esta lección veremos qué es y cómo instalar Homestead.
En esta lección veremos actualizaremos el código de nuestra aplicación actual, a la versión 5.3 de Laravel.
En esta lección veremos qué son y cómo utilizar Seeders.
En esta lección veremos cómo agregar paginación a listados de recursos y cómo modificar los links a nuestra conveniencia.
En esta lección veremos qué es el Caché y cómo puede ayudarnos a mejorar la carga de nuestras aplicaciones.
En esta lección veremos como utilizar el caché en Laravel.
En esta lección veremos cómo guardar el caché en Redis, una base de datos NoSql en memoria.
En esta lección veremos qué es y cómo utilizar el patrón de diseño de software llamado Repositorio.
En esta lección veremos qué son y cómo utilizar el patrón decorador.
En esta lección veremos qué son, y cómo se utilizan los View Presenters.
En esta lección veremos para qué sirve y cómo utilizar Queues y Jobs.
En esta lección veremos cómo integrar socket.io con Redis y Laravel Echo.
En esta lección veremos qué son las pruebas unitarias o unit tests.
En esta lección vemos qué son los tests de integración.
En esta lección veremos cómo escribir tests funcionales para nuestra aplicación
En esta lección veremos cómo integrar Selenium para ejecutar acceptance tests, a través del navegador.
En esta lección veremos cómo desplegar nuestra aplicación en Heroku
En esta lección veremos como integrar ejecutar migraciones y configurar una base de datos en Heroku
En esta lección veremos cómo publicar nuestra aplicación en Digital Ocean utilizando Laravel Forge
En esta lección veremos lo fácil que alojar múltiples sitios en Digital Ocean, con la ayuda de Laravel Forge
En esta lección veremos cómo comprar y configurar un dominio para que apunte a nuestra aplicación
En esta lección veremos cómo configurar cuentas de emails corporativas, es decir, que podamos enviar y recibir correos electrónicos a través de nuestro dominio.
En esta lección veremos lo fácil que es integrar queues y caché con redis en Laravel Forge
En esta lección veremos cómo instalar un certificado de seguridad SSL totalmente gratis, utilizando Laravel Forge
En esta lección veremos cómo configurar Forge para que actualice nuestra aplicación cada vez que detecte un cambio en el repositorio
En esta lección vemos cómo subir un proyecto hecho en Laravel a un hosting compartido con Cpanel.
Este es el link del proveedor de hosting que te comenté: webinfinita.com/hosting es un link de afiliado, lo que significa que recibiré una comisión si decides contratar sus servicios, no tendrá ningún costo adicional para ti.
Aquí revisaremos los cambios en el directorio de carpetas en laravel 5.3
En esta lección revisamos qué son los ataques XSS (Cross Site Scripting) y cómo evitarlos en tus aplicaciones hechas con Laravel.
En esta lección veremos este concepto de Mailables para encapsular el envío de emails en clases
En esta lección veremos cómo subir archivos con Laravel
Desde la versión 5.3, Laravel provee soporte para enviar notificaciones a través de una variedad de canales de distribución, como correos electrónicos, mensajes de texto con Nexmo y slack. En esta lección dejaremos preparadas las bases para implementarlas
Vamos a ver en detalle, cómo funcionan las notificaciones a través de base de datos en Laravel
En esta lección veremos cómo mostrar las notificaciones leídas y no leídas, y también cómo permitirle al usuario marcarlas como leídas para que no vuelvan a aparecer en la interfaz gráfica.
En esta lección veremos cómo enviar notificaciones por correo electrónico.
En esta lección veremos cómo notificar a múltiples usuarios a la vez, a través de emails y base de datos.
En esta lección creamos un componente de vue.js dedicado a mostrar las notificaciones vía ajax con axios.
En esta lección creamos un botón para marcar todas las notificaciones como leídas, y removemos la dependencia de bootstrap js sobre nuestro componente.
En esta ocasión veremos cómo exportar HTML & CSS a PDF en Laravel.
En esta lección veremos cómo exportar archivos de Excel, CSV, y algunos otros, utilizando Laravel.
En esta lección vemos cómo exportar consultas personalizadas a Excel, utilizando el Query Builder de Laravel.
En esta lección aprendemos a exportar el contenido de las vistas de blade a Excel y CSV.
En esta lección aprendemos cómo exportar datos masivos a través de queues, para devolver una respuesta inmediata al usuario mientras la exportación suceda en segundo plano.
Desde la última actualización de chrome, el navegador ahora nos redirecciona los dominios .dev de http a https, lo que nos impide ver nuestros sitios en desarrollo con Laravel Valet. En este video vamos a ver cómo cambiar fácilmente esta configuración.
En esta lección aprendemos cómo mostrar imágenes y cómo crear un link simbólico sin la necesidad de acceder a la consola de comandos.
En esta lección vemos cómo instalar la última versión en desarrollo de Laravel y vemos cómo podemos fácilmente utilizar Vuejs o ReacJs en nuestras aplicaciones, con el nuevo comando 'preset'.
En esta lección veremos 2 nuevos métodos de rutas llamados view y redirect, que nos ayudan a simplificar nuestro código.
En esta lección vemos algunas nuevas directivas de Blade y lo fácil que es crear tus propias directivas.
En este video vemos las mejoras que trae el comando php artisan vendor:publish.
Para instalar un paquete en Laravel, los pasos más comunes son: Instalar el repositorio a través de composer, registrar el service provider, y opcionalmente registrar el o los aliases para interactuar con el paquete. Ahora en laravel 5.5 sólo es necesario realizar este primer paso, déjame mostrarte.
En este video vemos cómo podemos inspeccionar fácilmente el aspecto de los emails que creamos en nuestras aplicaciones de Laravel.
En este video veremos algunas mejoras que se han añadido a la validación de requests
En esta lección revisamos el nuevo comando make:rule y cómo nos ayuda a encapsular la lógica de nuestras reglas de validación y así mejorar la estructura de nuestras aplicaciones.
En este video vemos el nuevo comando migrate:fresh y la principal diferencia con el comando migrate:fresh
En este video revisamos nuevas formas de crear 'factories' o fábricas de modelos en Laravel 5.5.
En esta video revisamos un nuevo helper que viene con Laravel 5.5, que nos ayuda evitar el error 'Trying to get property of non-object', que significa, tratando de acceder a una propiedad a través de un no-objeto.
En esta lección veremos la diferencia entre el método has en el request en Laravel 5.4 y Laravel 5.5. Veremos también el nuevo método filled y cuándo utilizarlos.
En esta lección revisamos los cambios en la estructura de carpetas que tenemos en Laravel 5.7
En esta lección revisamos las mejoras en los mensajes de errores al llamar a métodos dinámicamente en Laravel 5.7.
En esta lección revisamos una nueva característica que poseen las políticas de acceso en Laravel 5.7.
En esta lección revisamos para qué sirve el nuevo comando dump-server que viene en Laravel 5.7.
En esta lección revisamos cómo implementar la verificación de email y cómo modificar y traducir los mensajes.
En este curso aprenderemos desde cero, a programar aplicaciones web utilizando el framework más popular de php, LARAVEL.
Acá te dejo el temario completo:
Módulo 1 - Laravel para principiantes (ACTUALIZACIÓN)
Instalando todo lo necesario para programar con Laravel en Windows
Instalando Sublime Text 3
Mejorando la apariencia de Sublime Text
Configurando PHP Companion en Sublime Text
Preferencias personales de Sublime Text
Mejorando la apariencia de Sublime Text - Parte 2
Qué son y cómo se utilizan las RUTAS
Rutas con nombre
Cómo mostrar HTML con las vistas
Blade, el motor de plantillas
Estructuras de control con Blade
Controladores
Controladores Resource & API
Cómo enviar formularios
Cómo validar formularios
Cómo traducir tus aplicaciones en Laravel
Cómo enviar emails en Laravel
Variables de entorno y Bases de Datos
Qué son y cómo se utilizan las migraciones
Eloquent: Obtener registros de la base de datos
Eloquent: Obtener registros individuales
Route model binding - URLs amigables
Eloquent: Insertar registros
Qué significa la asignación masiva
Qué son y cómo utilizar Form Requests
Eloquent: Actualizar registros
Reutilizando el formulario de crear y editar
Eloquent: Eliminar Registros
Route Resource
Cómo mostrar mensajes de sesión
Agregando Login y Registro
Cómo proteger rutas con usuario y contraseña
Introducción a Laravel Mix
Diseño con Bootstrap 4 - parte 1
Terminando el diseño
Módulo 2 - Laravel Intermedio (ACTUALIZACIÓN)
Introducción del curso Laravel Intermedio
Cómo evitar registros duplicados
Cómo subir imágenes
Cómo mostrar imágenes
Cómo validar imágenes
Cómo actualizar y eliminar imágenes
Cómo optimizar imágenes
Cómo utilizar Eventos y Listeners
Delegando la optimización de imágenes a las queues
Manejo de Jobs fallidos
Bases de datos relacionales
Relaciones con Eloquent
Select de categorías
Problema de consultas N+1
Filtrar proyectos por categorías
Qué son los tests y cómo ejecutarlos
Qué son y cómo utilizar Factories
Qué son y cómo utilizar Colecciones en Laravel
Qué son Gates y cómo utilizarlos
Qué son las Políticas de Acceso y cómo utilizarlas
Cómo crear una papelera de reciclaje
Cómo actualizar cualquier aplicación de Laravel a la versión más reciente
Cómo publicar una aplicación de Laravel en Digital Ocean APP Platform
Módulo 3 - Nivel Básico
En este módulo veremos los fundamentos de Laravel
Routing - Qué son y cómo se utilizan las RUTAS
Views - Cómo mostrar HTML con las VISTAS
Blade - El motor de plantillas de Laravel
Controllers - Cómo utilizar controladores
Requests - Cómo manejar las peticiones HTTP
Validation - Validación de formularios
Responses - Cómo manejar las respuestas del servidor
Middlewares - Qué son y cómo se utilizan
Bases de Datos - Configuración de la conexión
Migrations - Control de versión de bases de datos
REST - Entendiendo el diseño de software REST
Query Builder - Implementación REST
Eloquent - Reestructuración REST
Authentication - Login manual de usuarios
Elixir - Preprocesadores CSS y Bootstrap
Elixir - Combinación de archivos y BrowserSync
Módulo 4 - Nivel Intermedio
En este módulo crearemos un sistema de Usuarios y Roles
Usuarios y Roles - Introducción
Eloquent - Relaciones HasOne & HasMany
Eloquent - Relaciones Many to Many
Validación - Regla unique al actualizar
Policies - Políticas de acceso
Collections - Reestructuración de código
Eloquent: Guardar relaciones HasOne y HasMany
Eloquent: Guardar relaciones ManyToMany
Eloquent: Relaciones Polimórficas HasOne & HasMany
Eloquent: Relaciones Polimórficas belongsToMany
Eloquent: Optimización de consultas
Emails - En entorno local
Emails - En entorno de producción
Eventos y Listeners - Reestructuración del código
Módulo 5 - Nivel Avanzado
En este módulo veremos lo siguiente temas un poco más avanzados
Instalación de Homestead
Actualización
Seeders
Paginación - Custom
Introducción al Caché
Utilizando el Caché en Laravel
Caché con Redis
Repositorios - Reestructuración de código
Decoradores e Interfaces- Reestructuración de código
View Presenters
Queues & Jobs
SocketIO - Laravel Echo & Redis
Testing - Unit Tests
Testing - Integration Tests
Testing - Functional Tests
Testing - Acceptance tests con Selenium
Módulo 6 - Despliegue en servidores
En este módulo aprenderemos a poner en producción aplicaciones de Laravel
Deploy en Heroku (servicio gratuito)
Migraciones y bases de datos en Heroku
Forge - Deploy en Digital Ocean
Forge - Cómo tener múltiples sitios pagando un solo servidor
Adquiriendo y configurando un dominio personalizado
Configurando cuentas de email corporativo
Forge: Queues & caché con Redis
Forge - Cómo instalar un certificado SSL gratis
Forge - Despliegue automático
Módulo 7 - Tips & Trucos (BONUS 1)
En este módulo vemos tips y trucos con Laravel, además de actualizaciones de las versiones 5.*
Cambios importantes en el directorio
Mailables
Nueva forma de subir archivos
Notificaciones vía email
Notificaciones vía database y más...
Qué son los ataques XSS y cómo evitarlos
Cómo exportar PDFs en Laravel
Cómo exportar Excel & CSV en Laravel
Cómo exportar consultas a Excel & CSV
Cómo exportar vistas de blade a Excel & CSV
Cómo exportar datos a través de queues
Cómo ejecutar el comando storage:link en un servidor compartido con CPanel
Módulo 8 - Cómo funciona la autenticación en Laravel (BONUS 2)
En este módulo vemos tips y trucos con Laravel, además de actualizaciones de las versiones 5.*
Cómo funciona el login
Cómo funciona el registro
Solicitud de reestablecimiento de contraseña
Personalizando el email de reestablecimiento de contraseña
Cómo funciona el restablecimiento de contraseñas
Módulo 9 - Novedades de Laravel 5.5 (BONUS 3)
Frontend presets
Métodos view y redirect
Directivas de Blade
Comando vendor publish
Comando package discover
Emails renderizables
Validación de requests
Comando make rule
Comando migrate fresh
Comando make factory
Objetos opcionales
Diferencias entre request has y request filled
Módulo 10 - Novedades de Laravel 5.7 (BONUS 4)
Cambio en la estructura de carpetas
Mejores mensajes de error
Usuario opcional en políticas de acceso
Dump Server
Verificación de Emails
Módulo 11 - Novedades de Laravel 5.8 (BONUS 5)
Registro automático de políticas de acceso
Dirección de los archivos de Blade
Tiempo de expiración del caché
Módulo 12 - Novedades de Laravel 6 (BONUS 6)
Cómo ejecutar el comando make:auth en Laravel 6
Ignition: La nueva página de error de Laravel 6
Confirmación de contraseña
Nueva constante de redirección
Cambios en los tests
Módulo 13 - Novedades de Laravel 7 (BONUS 7)
Qué son y cómo crear Casts personalizados
Componentes de Blade mejorados
Personalización de Stubs del comando artisan make
El nuevo Cliente HTTP,
Nuevos métodos en las migraciones
Mejoras en las rutas
Módulo 14 - Novedades de Laravel 8 (BONUS 8)
Carpeta para los modelos de Eloquent
Remoción del Namespace de los controladores
Mejoras en el comando route:cache
Mejora radical en los factories
El nuevo instalador de Laravel
Qué es Laravel Jetstream
Módulo 15 - Novedades de Laravel 9 (BONUS 9)
1. Agrupar rutas de un mismo controlador
2. Nueva página de error y helpers
3. Nueva forma de definir mutadores y accesores en Laravel 9
4. Nuevos métodos de Blade
5. Slot Name Shortcut
6. Nuevas directivas de Blade
7. Mejora en los comandos artisan test y route:list en Laravel 9
8. Forced Scoping Of Route Bindings
9. Paginación con Bootstrap 5 en Laravel 9
10. Enum Eloquent Attribute Casting
11. Implicit Route Bindings With Enums
12. Full Text Indexes & Where Clauses
13. Laravel Scout Database Engine
14. Cómo migrar de Laravel Mix a Laravel Vite