La llegada de Laravel 8 trajo consigo muchas novedades. Desde cambios en los Factories hasta mejoras de rendimiento con Jetstream. Ahora, la pregunta que nos hacemos todos: ¿Se puede actualizar un proyecto de Laravel versiones anteriores sin fallar en el intento?
Comencemos con el paso a paso para llevar esta actualización con éxito:
PASO 1:
Antes de pasar a Laravel 8, te recomendamos actualizar el Composer y así asegurarte que tu entorno Backend esté también actualizado:
PASO 2:
En nuestro archivo composer.json vamos a reemplazar las siguientes dependencias en las propiedades del "require" y del "require-dev":
"require": {
"php": "^7.3|^8.0",
"fideloper/proxy": "^4.0",
"laravel/framework": "^8.0",
"laravel/tinker": "^2.0",
"yajra/laravel-datatables-oracle": "^9.7",
"laravel/ui": "^3.0"
},
"require-dev": {
"guzzlehttp/guzzle":"^7.0.1",
"facade/ignition": "^2.3.6",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^5.0",
"phpunit/phpunit": "^9.0",
"illuminate/support": "^8.6"
},
PASO 3:
Los siguientes cambios que vienen a continuación hay que hacerlos porque a partir de Laravel 7, la versión de Symfony cambió a la número 5, por lo tanto hay varios archivos que desde la versión Laravel 6 quedaron con líneas de código obsoletas.
Los métodos report y render de la clase App\Exceptions\Handler de tu aplicación deben aceptar instancias de la interfaz Throwable en lugar de instancias Exception:
use Throwable;
public function report(Throwable $exception);
public function render($request, Throwable $exception);
Luego, debes actualizar la opción secure de tu archivo de configuración config/session.php para que tenga un valor por defecto de null y la opción same_site para que tenga un valor por defecto de lax:
'secure' => env('SESSION_SECURE_COOKIE', null),
'same_site' => 'lax',
Luego, debes buscar los siguientes archivos:
Allí modificar la clase getClass() por getType() y luego reemplazar el método ->name por ->getName()
Finalmente dirigirte al archivo:
Allí reemplazar la línea:
$packages = json_decode($this->files->get($path), true);
Por:
$installed = json_decode($this->files->get($path), true);
$packages = $installed['packages'] ?? $installed;
PASO 4:
En este paso ya podemos ejecutar Composer Update para actualizar tus paquetes y php artisan --version para comprobar que tienes instalada la versión 8 del framework.
PASO 5:
Y para terminar, Laravel 8 viene con algunos cambios importantes, sin embargo, si deseas continuar utilizando la sintaxis de la versión anterior del framework, instala el paquete laravel/legacy-factories mediante Composer:
composer require laravel/legacy-factories
Si deseas ver esta explicación en video te invito a que visites el canal de YouTube de Tutoriales a tu Alcance dando clic en el botón de reproducción:
Desarrollador Web
28/09/2021
3712 Visitas
Usamos cookies para brindar nuestros servicios. Al utilizar este sitio web, acepta esto. Conoce nuestras políticas de Cookies