Error fatal al actualizar Laravel 5.1 a 5.2
Estoy siguiendo al oficial guía de actualización de 5.1 a 5.2. La primera subsección dice:
Si está instalando una versión beta de Laravel 5.2, agregue
"minimum-stability": "beta"
a tu compositor.archivo json.Actualiza tu composer.archivo json para apuntar a
laravel/framework 5.2.*
.Añadir
symfony/dom-crawler ~3.0
ysymfony/css-selector ~3.0
a la require-dev sección de su compositor.archivo json.
Ahora, después de introducir los cambios anteriores y ejecutar composer update
, obtengo lo siguiente error(es):
PHP Fatal error: Class 'Illuminate\Routing\ControllerServiceProvider' not found
in /home/vagrant/Code/myproject/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 146
Y
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'Illuminate\Routing\ControllerServiceProvider' not found
Y
[RuntimeException]
Error Output: PHP Fatal error: Class 'Illuminate\Routing\ControllerServiceProvider' not found in /home/vagrant/Code/myproject/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 146
Los errores se lanzan después de que se realiza la actualización, y se lleva a cabo la "Generación de archivos de carga automática".
¿Qué podría estar mal?
No parece un problema de paquete personalizado, sino uno principal. ¿Debo continuar con la guía de actualización y ejecutar composer update
DESPUÉS de que todo se haya ajustado para adaptarse a la nueva versión del framework?
UPDATE
Corriendo composer dump-autoload
después no arroja los errores descritos anteriormente. Aunque sigue siendo confuso.
6 answers
Ya no hay Illuminate\Routing\ControllerServiceProvider
.
Si yo fuera usted, compararía mi proyecto de aplicación con https://github.com/laravel/laravel/commits/develop
, si por ejemplo mira https://github.com/laravel/laravel/blob/develop/config/app.php
verá proveedores predeterminados para Laravel 5.2:
Illuminate\Auth\AuthServiceProvider::class,
Illuminate\Broadcasting\BroadcastServiceProvider::class,
Illuminate\Bus\BusServiceProvider::class,
Illuminate\Cache\CacheServiceProvider::class,
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
Illuminate\Cookie\CookieServiceProvider::class,
Illuminate\Database\DatabaseServiceProvider::class,
Illuminate\Encryption\EncryptionServiceProvider::class,
Illuminate\Filesystem\FilesystemServiceProvider::class,
Illuminate\Foundation\Providers\FoundationServiceProvider::class,
Illuminate\Hashing\HashServiceProvider::class,
Illuminate\Mail\MailServiceProvider::class,
Illuminate\Pagination\PaginationServiceProvider::class,
Illuminate\Pipeline\PipelineServiceProvider::class,
Illuminate\Queue\QueueServiceProvider::class,
Illuminate\Redis\RedisServiceProvider::class,
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
Illuminate\Session\SessionServiceProvider::class,
Illuminate\Translation\TranslationServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,
/*
* Application Service Providers...
*/
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-21 13:16:02
Al actualizar de 5.1 a 5.2 en proyectos existentes, encontramos que ejecutar composer update
antes y después de eliminar las líneas para los proveedores
Illuminate\Routing\ControllerServiceProvider::class Illuminate\Foundation\Providers\ArtisanServiceProvider::class
Fue una secuencia necesaria para completar la actualización de laravel.
Ejecutar antes permitiría a laravel descargar y actualizar las dependencias actuales de la biblioteca del marco y luego ejecutar después de la eliminación (composer pudo completar sin problemas)
También encontramos que cualquier valor en el .el archivo env no puede tienen espacios y deben estar rodeados de citas para trabajar.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-06 17:37:57
Elimine los dos proveedores de servicios de config/app.php
Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
Illuminate\Routing\ControllerServiceProvider::class,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-04 11:59:13
Actualizando la aplicación.el archivo php bajo config / solucionó un problema, pero con la introducción de la carpeta bootstrap/cache probablemente continuará encontrándose con el mismo error.
Ejecuté la actualización composer Antes de eliminar el archivo almacenado en caché, así que seguí golpeando el mismo error. Asegúrese de eliminar el bootstrap / cache / services.primero el archivo php.
Podría haber un comando artisan para esto, pero me perdí totalmente este paso en la documentación.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-11 00:46:17
Encontré la solución aquí:
Https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0
Proveedores de servicios
El Illuminate\Foundation\Providers\ArtisanServiceProvider debe eliminarse de su lista de proveedores de servicios en su aplicación.archivo de configuración php.
El Illuminate\Routing\ControllerServiceProvider debe eliminarse de la lista de proveedores de servicios de la aplicación.archivo de configuración php.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-21 13:13:05
Eliminar paquetes.php y configuración.php desde la carpeta de caché de bootstrap después de ejecutar composer dump-autoload
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-20 17:15:10