Instalé el nuevo proyecto Laravel 8 y al cargar la primera instancia, aparece el siguiente error. Es extraño porque lo dejé de lado y luego actualicé otro proyecto (que funcionaba bien) de Laravel 5.8 -> 6 y obtuve un error similar cuando fui a revisar el sitio.
Borré el caché del compositor, eliminé la carpeta del proveedor y la reinstalé y parece que no puedo resolverlo. Estuve devanando mi cerebro con esto durante el último día y parece que alguna versión del paquete es incorrecta, pero no estoy seguro de por dónde empezar a solucionar el problema.
( ! ) Error fatal: la declaración de Illuminate\Container\Container::get($id) debe ser compatible con Psr\Container\ContainerInterface::get(string $id) en /home/vagrant/ps/vendor/laravel/framework /src/Illuminate/Container/Container.php en la línea 15
Call Stack # Time Memory Function Location 1 0.0001 357784 {main}( ) .../index.php:0 2 0.0133 502360 require_once( '/home/vagrant/ps/bootstrap/app.php' ) .../index.php:47 3 0.0133 502360 spl_autoload_call ( ) .../app.php:14 4 0.0133 502424 Composer\Autoload\ClassLoader->loadClass( ) .../app.php:14 5 0.0133 502424 Composer\Autoload\includeFile( ) .../ClassLoader.php:322 6 0.0135 578336 include( '/home/vagrant/ps/vendor/laravel/framework/src/Illuminate/Foundation/Application.php' ) .../ClassLoader.php:444 7 0.0135 578336 spl_autoload_call ( ) .../Application.php:29 8 0.0135 578392 Composer\Autoload\ClassLoader->loadClass( ) .../Application.php:29 9 0.0135 578392 Composer\Autoload\includeFile( ) .../ClassLoader.php:322 10 0.0138 588440 include( '/home/vagrant/ps/vendor/laravel/framework/src/Illuminate/Container/Container.php' ) .../ClassLoader.php:444
¿Qué versión de PHP estás usando? Parece que este problema está ocurriendo debido a la escritura estática agregada a psr/container
entre v1.0.0 y v.1.1.0 lanzada hace cinco días para desaprobar PHP < 7.2
https://github.com/php-fig/container/blob/1.0.0/src/ContainerInterface.php#L23
https://github.com/php-fig/container/blob/1.1.0/src/ContainerInterface.php#L22
Fijar psr/container
a v1.0.0 debería resolver esto hasta que se actualice Illuminate
( ! ) Error fatal: la declaración de Illuminate\Container\Container::get($id) debe ser compatible con Psr\Container\ContainerInterface::get(string $id) en /home/vagrant/ps/vendor/laravel/framework /src/Illuminate/Container/Container.php en la línea 15
En mi caso, estaba usando composer 1.10 y actualicé a la versión 2.0. El compositor cambiará a la versión 1.0.0 de Psr\Container
y, si necesita volver al compositor 1, use el comando:
composer self-update --1