
Mensaje breve de bienvenida.
Algunas recomendaciones iniciales que debes tener en cuenta para aprovechar mejor el curso.
Verifica qué versión de PHP estás usando y en qué versión se encuentra tu proyecto Laravel.
Veamos qué es Composer, además de cuál es la importancia del archivo composer.json y en qué se diferencia del archivo composer.lock
Nuestro proyecto tiene a laravel/framework en su lista de dependencias. ¿Laravel como framework tiene también dependencias?
¿Por qué algunas carpetas y archivos no se encuentran en los repositorios de código? ¿Qué representan las carpetas creadas por los IDE y editores de texto?
En esta lección vemos: ¿Qué es un release? ¿Cuál es la diferencia entre un release LTS y un release general? ¿Qué son bug fixes y security fixes?
¿Una mejora de rendimiento afecta al código de nuestra app? ¿Cuál es la diferencia entre unas Release Notes y una Upgrade Guide?
Veamos qué es una upgrade guide o guía de actualización.
¿Qué son las pruebas de software? Muchas veces no se escriben, pero veamos por qué son importantes.
Aprende cuál es la diferencia entre Git y, GitHub y BitBucket y GitLab.
Veamos en qué casos te conviene crear un proyecto de Laravel nuevo y mover tus archivos. Además de por qué te conviene generalmente hacer upgrade de manera secuencial, de una versión a la siguiente.
En esta lección respondemos: ¿Qué es Laravel Shift? ¿En qué nos ayuda Laravel Shift? ¿Nos soluciona todos los problemas? ¿Por qué no lo vamos a usar en el curso?
En esta lección revisamos algunos comandos básicos de git, e iniciamos un repositorio en caso de no contar con uno. También vemos cuál es la diferencia entre el archivo .env y el archivo .env.example
Veamos qué es un repositorio remoto y cómo podemos crear uno y enlazarlo a nuestro repositorio local. En este caso usamos BitBucket, pero tenemos muchas más alternativas (como GitHub y GitLab).
En esta lección vemos cómo actualizar las versiones de nuestras dependencias haciendo uso de Composer, revisamos la nueva versión de PHP requerida por Laravel 5.3; y también vemos qué significa el término "deprecations".
En esta lección vemos qué características de Laravel 5.2 fueron marcadas como deprecated y que ahora han sido eliminadas en Laravel 5.3.
En esta lección actualizamos los Service Providers de nuestra aplicación. El cambio es generalmente inmediato, pero debemos tener especial cuidado con RouteServiceProvider y la nueva forma en que se organizan las rutas.
En esta lección revisamos cambios en métodos de la clase Arr. También vemos cuál es el nuevo comando para crear "comandos Artisan".
Comparamos el sistema de autenticación que usaba Laravel en su versión 5.2 VS cómo está implementado para Laravel 5.3. Actualizamos los controladores de autenticación según lo que sugiere Laravel 5.3 y vemos la forma de mantener la lógica de redirección que usa el proyecto que estamos actualizando. También vemos qué son los traits y revisamos código en la carpeta vendor.
En esta lección vemos cómo se puede personalizar el correo que envía Laravel para el reset de passwords. Así mismo, cómo y dónde declarar las rutas de autenticación, agregando una sola línea.
En esta lección vemos cuál es la importancia de usar peticiones POST para la acción de Logout en nuestra aplicación web.
Siguiendo la idea descrita en la lección anterior, continuamos reemplazando nuestras peticiones GET por POST, con relación a la ruta de Logout, que se usa para cerrar sesión.
En esta lección repasamos los cambios hechos en la lección anterior, y vemos más en detalle cómo funciona el evento de onClick y el método submit aplicado sobre formularios.
En esta lección vemos cuál es la diferencia entre Authentication y Authorization. También vemos de forma general qué son las Policies y las buscamos en nuestro proyecto.
En esta lección corregimos un error que obtuvimos al intentar cerrar sesión. Luego de usar Auth::routes() nos olvidamos de eliminar las rutas de autenticación que anteriormente se declaraban una a una.
El framework Laravel hace uso de directivas Blade, que vienen definidas por defecto, pero también es posible definir nuestras propias directivas. Si tu proyecto tiene custom directives debes actualizar la forma en que se declaran.
En esta lección agregamos un Service Provider a nuestra lista de providers, y actualizamos nuestro archivo de configuración para lo que es Broadcasting de eventos.
Veamos qué cambios tenemos con relación a la clase Cache y la dependencia Cashier de Laravel, al actualizar de Laravel 5.2 a 5.3.
En la guía de actualización nos encontramos con cambios en los métodos de Colecciones. Sin embargo, no hay que confundir esto con los métodos Eloquent, incluso si llevan el mismo nombre.
Veamos cómo funcionan las opciones que se definen en nuestros archivos de configuración, al interior de la carpeta config. Así mismo, cómo hacer uso de Tinker, la consola interactiva de Laravel.
Los controladores son clases, por tanto, pueden definir un método constructor. Laravel 5.3 no recomienda hacer uso de sesiones en el constructor de los controladores. Veamos cómo adaptar nuestro código.
En la lección anterior hemos actualizado a Laravel 5.4 por equivocación. Veamos cómo volver a Laravel 5.3. Así mismo, veamos en qué consiste el estándar Semver, sobre cómo se deben asignar las versiones a los paquetes.
Luego de hacer downgrade en la versión anterior, continuamos revisando nuestros controladores que tienen constructores definidos, para asegurarnos de que no usen sesiones.
Las consultas que hacemos a través de la clase DB ahora devuelven instancias Collection en vez de arreglos planos. Veamos de qué forma podemos convertir las colecciones a arrays, por si resulta conveniente para tu proyecto.
Laravel 5.3 introduce cambios con relación al método getRelation y el atributo $morphClass. Veamos en qué consisten estos cambios. Veamos también qué es Eager Loading.
Si en tu proyecto has definido Scopes que hacen uso de varios orWhere, ten en cuenta que desde Laravel 5.3 el primero de ellos debe ser un where.
El método on de la clase Join Clause ha sido actualizado y ya no acepta un argumento where (ahora se debe llamar al método where). Además, ahora la lista de operadores que acepta el método on también se valida (en vez de pasar 'in' como parámetro se debe usar el método whereIn).
El método de encriptación Mcrypt se elimina en Laravel 5.3 y debemos usar un nuevo valor como cipher. También revisamos y nos aseguramos de tener un APP_KEY en nuestro archivo .env
En esta lección revisamos los cambios que se realizan en Laravel 5.3 con relación al Exception Handler. Así mismo, actualizamos la clase asociada al middleware can.
En esta lección revisamos los cambios relacionados a middlewares, y agregamos nuevas declaraciones en nuestro archivo Kernel.php
Revisemos qué cambios se introducen en Laravel 5.3 con relación al sistema de notificaciones.
Desde Laravel 5.3 es más sencillo personalizar la vista de los elementos HTML generados por Laravel para la paginación.
¿Usas colas en tu proyecto? De ser el caso, veamos qué cambios necesitas hacer para actualizar tu proyecto a Laravel 5.3.
Veamos qué cambios introduce Laravel 5.3 con relación a la declaración de rutas.
Veamos qué cambios introduce Laravel 5.3 con relación a su característica de Validación.
Hemos cometido 2 pequeños errores en lecciones anteriores. Veamos cómo corregirlos.
En esta lección comparamos todos los cambios que han habido en el repositorio de Laravel, entre la versión 5.2 y la versión 5.3.
Revisemos la sección "updating dependencies" de la guía de actualización a Laravel 5.4. Por ejemplo, ahora Tinker debe agregarse al proyecto como un paquete adicional al framework.
Respecto a la autorización, en Laravel 5.4, tenemos un cambio en el método getPolicyFor. Ahora el método no lanza excepciones, sino que simplemente devuelve un valor null, cuando no se encuentra ninguna política para la clase que se envía como argumento.
Laravel 5.4 introduce cambios en la directiva @section, cuando es usada de manera inline. Ahora el HTML es escapado por defecto. Si se quiere interpretar, debe usarse una sintaxis distinta. Veamos en qué consiste este cambio, y así mismo, cómo buscar usando expresiones regulares en VSCode.
Ahora debemos revisar nuestros archivos Kernel, y hacer ajustes, sólo en caso que hayamos estado sobreescribiendo el arreglo $bootstrappers.
En Laravel 5.4, cuando definimos placeholders para la declaración de canales de broadcasting, debemos ahora usar el mismo estilo que se usan para las rutas, indicando nombres de parámetro específicos.
Laravel 5.4 introduce cambios en los métodos every y random, presentes en las Colecciones.
Es muy probable que los cambios al Service Container de Laravel en su versión 5.4 no afecten a tu proyecto, pero de igual forma revisemos en qué consisten estos cambios.
El cambio que introduce Laravel 5.4 con relación a Console es muy específico. Veamos en qué consiste.
Veamos qué cambios introduce Laravel 5.4 con relación a las bases de datos.
Veamos en qué consiste la característica Attribute Casting de Laravel, y qué cambio se introduce en Laravel 5.4 con relación a Date Casts.
Laravel 5.4 introduce cambios sobre las convenciones de claves foráneas. De manera específica, definir un key name en un modelo ahora influye sobre el nombre de columna buscado.
En Laravel 5.4, respecto a las relaciones entre modelos, el método on ahora afecta correctamente a los modelos relacionados. Veamos cómo se trabaja con múltiples conexiones, y qué métodos han sido renombrados en Laravel 5.4.
Laravel 5.4 introduce cambios en el método chunk del Query Builder. Veamos en qué consiste este cambio.
Veamos qué cambios se introducen en Laravel 5.4 con relación a los métodos create, forceCreate, hydrate, hydrateRaw, whereKey y newPivot, además del helper factory.
Veamos qué cambios introduce Laravel 5.4 con relación a Eventos.
Veamos qué cambios introduce Laravel 5.4 y qué nos sugiere hacer, con relación al envío de correos electrónicos y el uso de la clase Mail.
En Laravel 5.4 se agrega una columna nueva sobre la tabla failed_jobs, para guardar información de posibles excepciones.
Veamos brevemente qué es Redis y qué cambios se introducen en Laravel 5.4 respecto a esta tecnología.
Veamos qué cambios se introducen en Laravel 5.4 con relación al sistema de rutas.
Veamos qué cambios introduce Laravel 5.4 con relación a sesiones. El método set ya no se encuentra definido, y en cambio debemos usar put. Pero nos encontramos con un error en el middleware VerifyCsrfToken, veamos cómo solucionarlo.
Veamos qué cambios introduce Laravel 5.4 con relación a las pruebas de software (testing).
Veamos cómo funciona la traducción de mensajes en Laravel, tanto para mensajes de validación como en general. Además, veamos qué cambios introduce Laravel 5.4 con relación a sus helpers de traducción.
Veamos qué cambios introduce Laravel 5.4 con relación a estas 2 últimas secciones de la guía: Url Generation y Validation.
En esta lección comparamos todos los cambios que han habido en el repositorio de Laravel, entre la versión 5.3 y la 5.4.
En esta lección creamos un nuevo commit para la actualización que recientemente hicimos para Laravel 5.4. Por equivocación se suben unos archivos de caché, pero vemos cómo eliminarlos. Finalmente iniciamos la actualización a Laravel 5.5, empezando por las dependencias.
Veamos qué cambios se introducen en Laravel 5.5 con relación a los comandos Artisan.
Laravel 5.5 introduce cambios con relación a las políticas de autorización (Policies). Veamos en qué consisten estos cambios.
La guía nos recomienda ejecutar un comando para limpiar datos en caché la primera vez que subamos nuestros cambios de la actualización a Laravel 5.5.
Veamos qué cambios introduce Laravel 5.5 con relación a los métodos de Eloquent.
Laravel 5.5 realiza cambios en los formatos de respuesta usados por las excepciones. Veamos en qué consisten estos cambios.
En esta lección revisamos las secciones Filesystem, Mail y Queues, de la guía de actualización a Laravel 5.5.
Veamos qué son las claves anidadas o nested keys, y qué cambios introduce Laravel 5.5 respecto a ellas.
Veamos qué cambios debemos tener en cuenta al actualizar nuestro proyecto de Laravel 5.4 a Laravel 5.5 con relación a testing.
El proyecto de ejemplo usa un paquete que tiene un conflicto con una de las dependencias de Laravel framework. Veamos qué debemos hacer cuando ocurre ello. También importamos AuthenticationException, ya que lo pasamos por alto en una lección anterior.
En esta lección agregamos un nuevo archivo de rutas en la carpeta routes, siguiendo los cambios que Laravel hace en su versión 5.5. De la misma forma agregamos una nueva dependencia, como reemplazo al paquete laravel-cors que se encontraba usando el proyecto de ejemplo.
En esta lección revisamos las secciones de Translation, Validation y Views, presentes en la guía de actualización a Laravel 5.5.
En esta lección comparamos todos los cambios que han habido en el repositorio de Laravel, entre la versión 5.4 y la 5.5.
Antes de continuar a la sección siguiente no olvidemos subir nuestros cambios a nuestro repositorio remoto.
Empecemos nuestro proceso de upgrade a Laravel 5.6 actualizando las dependencias de nuestro proyecto.
Veamos qué cambios presenta Laravel 5.6 con relación al método wrap de la clase Arr, y el comando Artisan optimize.
La característica de double encoding ahora viene activada por defecto en Laravel 5.6. En la versión 5.5 teníamos que activarla agregando una línea en nuestro AppServiceProvider. Veamos en qué consiste.
Respecto a Cache, tenemos un cambio bien puntual, que aplica sólo si hemos sobreescrito el método tooManyAttempts.
Veamos qué cambios debemos tener en cuenta con relación a bases de datos, al actualizar de Laravel 5.5 a Laravel 5.6.
En las secciones de Eloquent y Hashing de la guía de actualización se describen 2 cambios bien puntuales. Veamos en qué consisten.
Veamos qué cambios introduce Laravel 5.6 con relación al helper e.
Veamos qué cambios introduce Laravel 5.6 con relación a la característica de Logging. También veamos brevemente en qué consiste esta característica.
Laravel 5.6 modifica cómo funciona el método withSwiftMessage. Veamos en qué consiste este cambio.
Desde Laravel 5.6, el HTML generado para la paginación ya no está basado en Boostrap 3, sino más bien en Bootstrap 4. Veamos en qué consiste este cambio y cómo conservar el comportamiento que antes se tenía.
Cuando creamos una instancia de un modelo, y lo devolvemos como respuesta, Laravel 5.6 devolverá un código de respuesta 201, en vez de 200, que es lo que venía ocurriendo hasta este entonces.
Veamos qué cambios nos describe la guía de actualización a Laravel 5.6 en la sección de Trusted proxies.
En Laravel 5.6 se introduce un cambio bastante específico con relación a una interface de validación. Veamos en qué consiste.
En esta lección comparamos todos los cambios que se han realizado en el repositorio de Laravel, entre la versión 5.5 y la 5.6.
¿Qué son las estrellas en GitHub? Veamos cómo agradecer a los creadores de los paquetes que usamos. Finalmente subimos nuestros cambios a nuestro repositorio remoto para mantenerlos a salvo.
Veamos qué dependencias nos corresponde actualizar, de Laravel 5.6 a 5.7.
La guía de actualización describe cambios realizados sobre el método job. Nos dice que se estima un impacto bajo. Veamos de qué trata.
Los nuevos proyectos Laravel, desde su versión 5.7, ya no incluyen una carpeta "assets" al interior de la carpeta "resources". Este es un cambio opcional. Veamos en qué consiste.
Lo más probable es que estos cambios relacionados a la autenticación, no afecten a tu proyecto, ya que se catalogan como impacto bajo en la guía de actualización. Veamos en qué consisten.
Veamos qué cambios debemos realizar en nuestro proyecto Laravel con relación a Authorization al actualizar a la versión 5.7. El impacto estimado es muy bajo, por lo que muy probablemente no necesites hacer cambios, pero veamos en qué consisten.
El operador or que se podía usar anteriormente en Blade, ha sido eliminado, a favor del operador ?? que forma parte de PHP.
Dentro de la carpeta storage/framework/cache Laravel ahora define una nueva carpeta data. Es importante que la agreguemos siguiendo los pasos que nos indica la guía de actualización a Laravel 5.7.
Al actualizar a Laravel 5.7 nos encontramos con cambios de bajo impacto con relación a Carbon y Collections. Veamos de qué tratan.
Es muy poco probable que hayas estado implementando la interfaz que menciona la guía de actualización a Laravel 5.7, pero revisemos de todas maneras.
Veamos qué cambios debemos tener en cuenta con relación a las bases de datos, cuando actualizamos nuestro proyecto de Laravel 5.6 a 5.7.
Laravel 5.7 elimina 2 clases a favor de usar sus equivalentes componentes de Symfony. Es muy probable que esto no afecte a tu proyecto, pero veamos de qué trata el cambio.
Al actualizar a Laravel 5.7 debemos tener en cuenta cambios en Eloquent. De manera específica con los métodos latest, oldest, wasChanged, y la forma en que se tratan algunos valores en Postgres.
La característica de "email verification" está disponible desde Laravel 5.7, sin embargo, su uso es opcional. Veamos cómo habilitar esta característica.
Veamos qué debemos tener en cuenta al actualizar de Laravel 5.6 a 5.7, con relación al Filesystem y los algoritmos de Hashing.
Veamos qué cambios debemos tener en cuenta al actualizar a Laravel 5.7 con relación al envío de correos.
Veamos qué cambios debemos tener en cuenta al actualizar a Laravel 5.7 con relación a las colas de procesamiento.
Veamos qué cambios debemos tener en cuenta al actualizar nuestro proyecto Laravel de 5.6 a 5.7, con relación al sistema de rutas de Laravel.
Veamos qué cambios debemos tener en cuenta con relación a la validación de atributos anidados, al actualizar nuestro proyecto Laravel de 5.6 a 5.7.
Hay un cambio que debemos tener en cuenta con relación a la ejecución de comandos Artisan desde nuestros tests, al actualizar nuestro proyecto Laravel de 5.6 a 5.7.
En esta lección comparamos todos los cambios que se han realizado en el repositorio de Laravel, entre la versión 5.6 y la 5.7.
Como es usual, lo primero que hacemos es actualizar las dependencias de nuestro proyecto.
Veamos qué cambios introduce Laravel 5.8 con relación al "reset de contraseñas".
Veamos un ejemplo de cómo usar la clase Cache de Laravel, y así mismo qué cambios se han introducido con relación a sus métodos.
Laravel ha realizado mejoras en la gestión de Locks. ¿Pero qué es la característica de Atomic Locks y en qué casos se usa?
Veamos qué cambios introduce Laravel 5.8 con relación a los métodos definidos en las interfaces Repository y Store, que pertenecen al namespace Illuminate\Contracts\Cache.
Laravel 5.8 soporta tanto Carbon 1 como Carbon 2. Si no hay problemas de compatibilidad, Laravel instalará Carbon 2. Si ese es el caso para nuestro proyecto, debemos tener en cuenta los cambios que introduce Carbon en su versión 2.
Tenemos cambios bastante específicos con relación a Collections en Laravel 5.8. Veamos en qué consisten.
Laravel 5.8 introduce un cambio muy particular con relación a la interface Console/Kernel. Veamos en qué consiste.
Veamos brevemente qué es el Service Container de Laravel, y qué cambios debes realizar en tu proyecto, sólo en caso que lo hayas estado utilizando de la manera que se describe en la guía de actualización a Laravel 5.8.
Ahora, desde Laravel 5.8, para MySQL y MariaDB, el query builder devuelve valores JSON sin comillas dobles innecesarias. Veamos en qué consiste este cambio.
Veamos qué cambios introduce Laravel 5.8 con relación a SQLite, las migraciones, y el método bigIncrements.
Laravel 5.8 ahora pluraliza correctamente los nombres de modelos. Ahora los custom pivot models requieren que declaremos un atributo cuando se usan claves autoincrementales. Así mismo se ha agregado un método loadCount a la clase Model. Veamos más sobre estos cambios.
Veamos qué cambios debemos tener en cuenta al actualizar a Laravel 5.8, con relación a la característica de Soft Deletes (eliminación lógica) que ofrece Laravel.
Tenemos un cambio importante a tener en cuenta, con relación al paquete que se encarga de parsear nuestros archivos de entorno (.env).
Para Laravel 5.8, el método fire, de la clase Dispatcher, se ha eliminado. Veamos qué método debemos usar en cambio.
Veamos qué cambios debemos tener en cuenta al actualizar a Laravel 5.8, con relación a la característica de Exception Handling.
Veamos qué cambios se introducen en Laravel 5.8 con relación al envío de mails usando componentes de Markdown.
Veamos qué cambios se introducen en Laravel 5.8 con relación a las colas de procesamiento.
Laravel 5.8 introduce un cambio bastante particular respecto al middleware TransformsRequest. Veamos en qué consiste.
Respecto al sistema de rutas, Laravel 5.8 introduce cambios específicos, en la interfaz UrlGenerator. Veamos en qué consisten.
El cambio que introduce Laravel 5.8 respecto a sesiones es también bastante particular. Veamos de qué trata.
Los helpers globales definidos por Laravel y que empiezan con array_ o str_ ahora se han marcado como obsoletos y debemos usar en cambio las clases Arr y Str al actualizar a Laravel 5.8.
La propiedad defer sobre los service providers se ha marcado como obsoleta. Ahora debemos usar la interfaz Illuminate\Contracts\Support\DeferrableProvider.
El helper env de Laravel ahora es de sólo lectura (las variables de entorno se consideran como inmutables), al actualizar a Laravel 5.8.
Veamos qué cambios debemos tener en cuenta con relación a Testing, al actualizar nuestro proyecto Laravel de 5.7 a 5.8.
Veamos qué cambios debemos tener en cuenta con relación a las validaciones en Laravel, al actualizar nuestro proyecto de la versión 5.7 a la 5.8.
Tenemos un cambio bien puntual, a tener en cuenta, con relación a las vistas, al actualizar a Laravel 5.8. Veamos de qué trata.
Si tu proyecto hace uso de Nexmo o Slack como canales de notificación, debes tener en cuenta este cambio al actualizar tu proyecto a Laravel 5.8.
En esta lección comparamos todos los cambios que se han realizado en el repositorio de Laravel, entre la versión 5.7 y la 5.8.
Breve recuento de los archivos modificados como parte de nuestra actualización a Laravel 5.8. Finalmente creamos un commit y subimos nuestros cambios a nuestro repositorio remoto. Con esto estamos listos para continuar actualizando nuestro proyecto a Laravel 6.
Veamos qué dependencias debemos modificar para actualizar nuestro proyecto a Laravel 6. Así mismo, qué cambios tenemos con relación a la característica de Autorización (permisos en Laravel).
La guía nos recomienda actualizar la dependencia Carbon a su versión 2. Mientras hacemos el cambio, un paquete que no es compatible con Laravel 6 nos da problemas, pero conseguimos solucionarlo.
Tenemos cambios en archivos de configuración y variables de entorno que son opcionales, al actualizar nuestro proyecto a Laravel 6. Veamos de qué tratan.
Veamos qué cambios debemos tener en cuenta al actualizar nuestro proyecto a Laravel 6, con relación a las bases de datos.
Cambios a tener en cuenta al actualizar a Laravel 6, con relación a Eloquent. Veamos cuál es la diferencia entre hacer update desde un modelo vs desde una relación. Y la importancia de declarar un keyType en los modelos cuando la clave primaria no es integer.
Veamos qué cambios debemos tener en cuenta con relación a la verificación de correos en Laravel, al actualizar a la versión 6.
Los helpers globales con prefijo str y arr han sido eliminados, y en cambio es necesario usar las clases Str y Arr. Sin embargo, están disponibles desde un paquete en caso necesites tiempo para terminar de hacer los cambios en tu proyecto.
Veamos qué cambios debemos tener en cuenta al actualizar nuestro proyecto a Laravel 6, con relación a la traducción de mensajes.
Los drivers de mail "mandrill" y "sparkpost" han sido eliminados. Veamos qué nos comenta la guía de actualización sobre ellos.
Veamos qué cambios debemos tener en cuenta al actualizar a Laravel 6, con relación a las notificaciones con Nexmo.
Lo más probable es que este cambio con relación al reset de contraseñas no afecte a tu proyecto, pero veamos de qué se trata.
Cambios a tener en cuenta al actualizar a Laravel 6, con relación a las colas de procesamiento.
La clase Input ha sido eliminada. Debemos usar la clase Request como reemplazo, al actualizar a Laravel 6.
Veamos qué cambios debemos tener en cuenta al actualizar a Laravel 6, con relación a la ejecución de tareas programadas.
El storage driver "Rackspace" ha sido eliminado en Laravel 6.
Al actualizar a Laravel 6 debemos tener en cuenta estos cambios en la generación de URLs.
Al actualizar a Laravel 6 debemos tener en cuenta un cambio bastante puntual con relación a los FormRequests.
En esta lección comparamos todos los cambios que se han realizado en el repositorio de Laravel, entre la versión 5.8 y la versión 6.
Luego de actualizar nuestro proyecto a Laravel 6, creamos un commit con nuestros cambios y lo subimos a nuestro repositorio remoto. Con esto estamos listos para continuar con la actualización a Laravel 7.
Veamos qué paquetes debemos actualizar. Laravel 7 requiere de componentes Symfony en su versión 5, además de una versión de PHP superior a 7.2.5.
Veamos qué cambios debemos tener en cuenta al actualizar nuestro proyecto a Laravel 7, con relación a los nuevos componentes de Symfony 5.
En esta lección corregimos un error con un script, que impedía que nuestro comando inspire se ejecute correctamente. También agregamos una dependencia para continuar usando las rutas de autenticación sin problemas, y comentamos un cambio realizado sobre una interface.
Veamos qué cambios debemos tener en cuenta al actualizar a Laravel 7, con relación al sistema de plantillas Blade.
Al actualizar a Laravel 7 debemos tener en cuenta que 2 métodos que no estaban documentados han sido eliminados, y otros 2 métodos nuevos se han agregado para los modelos Eloquent.
Laravel 7 introduce un cambio importante, respecto al formato de fechas en la serialización de modelos (cuando usamos toArray o toJson). Veamos en qué consiste este cambio y cómo podemos volver al formato que se tenía antes de Laravel 7, por si lo necesitamos.
Laravel 7 elimina la característica de "factory types" y nos recomienda usar "factory states" como reemplazo. Veamos qué son los factories y factory states.
Desde Laravel 7 el método getOriginal respeta el cast sobre atributos y los mutators definidos en los modelos. Veamos a qué se refiere esto.
Veamos qué cambios debemos tener en cuenta al actualizar nuestro proyecto a Laravel 7, con relación a Route binding.
La biblioteca que Laravel sugería anteriormente para tener compatibilidad con el estándar PSR7 se ha marcado como obsoleta. Si estabas usando esta biblioteca, debes reemplazarla, al actualizar a Laravel 7.
Al actualizar a Laravel 7 debemos tener en cuenta 2 cambios con relación a los correos: El archivo de configuración tiene una nueva estructura (opcional), y los templates de markdown han sido modificados (esperan que el HTML no esté indentado).
Al actualizar tu proyecto a Laravel 7, debes actualizar también la manera de acceder a Swift Mailer, ya que los container bindings "swift.mailer" y "swift.transport" ya no son provistos por Laravel. Como reemplazo se recomienda acceder a través del binding "mailer".
Tenemos un cambio bien puntual con relación a las clases JSON Resources. Veamos de qué trata.
El método getRoutes ahora devuelve una instance de una interface en vez de una clase. Lo más probable es que esto no afecte a tu proyecto pero veamos de qué trata.
Laravel 7 nos advierte que no debemos usar nombres de ruta repetidos para nuestras rutas. Debe tratarse de nombres únicos, ya que de caso contrario, obtendremos comportamientos inesperados.
Veamos qué es CORS y cómo se gestionaba antes y después de Laravel 7.
El driver de sesión "array" ahora permite acceder a la data que almacena, ya que es persistente durante el request actual.
Veamos qué cambios debemos tener en cuenta con relación a Testing, al actualizar nuestro proyecto Laravel a la versión 7.
Al actualizar a Laravel 7, respecto a validaciones, solo hay un cambio, sobre la regla de validación "different". Veamos de qué trata.
En esta lección comparamos todos los cambios que se han realizado en el repositorio de Laravel, entre la versión 6 y la versión 7.
En esta lección realizamos una corrección final con relación al paquete laravel-analytics y luego subimos nuestros cambios a nuestro repositorio remoto.
Para actualizar nuestro proyecto de Laravel 7 a Laravel 8, empecemos actualizando nuestras dependencias.
Al actualizar a Laravel 8 debemos tener en cuenta que el método isset aplicado sobre colecciones funciona ahora de manera distinta. Veamos con ejemplos en qué consiste este cambio.
Al actualizar a Laravel 8, debemos declarar namespaces para nuestros Seeders y Factories. Veamos cómo se representan ahora a través de clases.
Al actualizar a Laravel 8 debemos tener en cuenta los cambios con relación a Model Factories, la interface Castable y los eventos asociados a los métodos increment y decrement.
Veamos qué cambios debemos tener en cuenta, con relación a eventos, al actualizar a Laravel 8.
Veamos qué cambios debemos tener en cuenta, al actualizar nuestro proyecto a Laravel 8, con relación al modo mantenimiento que ofrece Laravel, el comando php artisan serve y la clase Manager.
Veamos cómo desactivar el modo mantenimiento para que tu proyecto vuelva a estar live.
Debemos tener en cuenta un cambio puntual con relación al envío de correos, al actualizar a Laravel 8. Veamos de qué trata.
La paginación, al actualizar a Laravel 8, no genera una estructura compatible con Bootstrap, a menos que explícitamente le pidamos al framework hacer ello, ya que por defecto ahora se basa en Tailwind, que es otro framework CSS.
Respecto al uso de queue jobs en Laravel 8, algunos métodos y propiedades se han renombrado. Veamos cuáles.
Al actualizar a Laravel 8, opcionalmente podemos adaptar nuestra base de datos para soportar la nueva característica de Job Batching. Veamos en qué consiste este cambio.
Las rutas en Laravel 8 ahora se declaran por defecto de una manera distinta, usando PHP callable syntax. Aunque este cambio es opcional, veamos en qué consiste.
Respecto a Scheduling, Laravel 8 introduce un cambio bien puntual. Aunque muy probablemente no afecte a tu proyecto, veamos de qué trata.
Veamos qué cambio debemos tener en cuenta respecto a Session, al actualizar nuestro proyecto a Laravel 8.
Veamos qué cambios debes tener en cuenta con relación a Testing, al actualizar tu proyecto a Laravel 8.
En Laravel 8, las reglas de validación unique y exists han sido corregidas para funcionar respetando conexiones a bases de datos definidas específicamente en cada modelo. Veamos en qué consiste esto.
En esta lección comparamos todos los cambios que se han realizado en el repositorio de Laravel, entre la versión 7 y la versión 8.
En esta lección realizamos una corrección final con relación al middleware RedirectIfAuthenticated y luego subimos nuestros cambios a nuestro repositorio remoto.
Laravel es el framework PHP más popular de hoy en día.
Debido a:
Su excelente curva de aprendizaje
Nos permite hacer de todo
Facilita el trabajo y aumenta nuestra productividad
Y sobretodo:
Siempre está en mejora continua
E implementa las mejores prácticas de desarrollo
¿Pero sabes qué es muy triste?
Que muchos proyectos Laravel no son actualizados, y siguen en versiones muy antiguas
Yo quiero que TÚ aproveches las características más recientes del framework.
¿Me permites ayudarte?
Con este curso aprenderás conceptos nuevos de Laravel,
que te permitirán actualizar tus proyectos hasta la última vesión disponible de Laravel.
No lo dudes y actualiza tu proyecto Laravel a su siguiente versión:
5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8
6, 7, 8, 9, 10, 11, 12, 13, 14, etcétera.
Eso no es todo =)
Si adquieres este curso, tendrás una actualización gratuita cada vez que una nueva versión sea liberada.
Podrás actualizar tu proyecto Laravel a la versión 10, 11, 12, o cualquier otra versión que se publique en el futuro.
Acerca del curso:
Es un pago único,
y tendrás acceso de por vida.
Podrás consultar todas tus dudas.
Pregunta frecuente:
"Oye pero existen herramientas como Laravel Shift que actualizan automáticamente".
Mi respuesta es:
La automatización está genial, ¿pero qué ocurre si luego de actualizar
te encuentras con muchos errores?
Si no entiendes los cambios que la herramienta ha aplicado sobre tu proyecto, no te será de mucha ayuda.
Herramienta como Laravel Shift sirven como apoyo para actualizar proyectos,
pero NO se encargan de migrar todo completamente.
Si ocurren errores, la herramienta NO te explicará cómo corregirlos,
a diferencia de este curso.
Entonces:
La idea es que aprendas a actualizar tus proyectos,
POR TI MISMO, sin hacer uso de NINGUNA HERRAMIENTA.
Y
Una vez que aprendas todos los conceptos y PUEDAS actualizar por ti mismo:
Será decisión tuya si apoyarte de herramientas o no.
En el curso:
Tenemos un módulo por cada versión que existe de Laravel.
Cada módulo explica cómo actualizar de una versión a la siguiente, paso a paso.
¿Te animas a seguir el curso?
Genial, nos vemos dentro.