将 Laravel 5.1 升级到 5.2 时出现致命错误

2021-12-18 00:00:00 php laravel laravel-5.1 laravel-5.2

我正在遵循 5.1 的官方升级指南到 5.2.第一个小节说:

I'm following the official upgrade guide from 5.1 to 5.2. First sub-section says:

如果您要安装 Laravel 5.2 的测试版,请添加"minimum-stability": "beta" 到您的 composer.json 文件.

If you are installing a beta release of Laravel 5.2, add "minimum-stability": "beta" to your composer.json file.

更新您的 composer.json 文件以指向 laravel/framework 5.2.*.

Update your composer.json file to point to laravel/framework 5.2.*.

symfony/dom-crawler ~3.0symfony/css-selector ~3.0 添加到composer.json 文件的 require-dev 部分.

Add symfony/dom-crawler ~3.0 and symfony/css-selector ~3.0 to the require-dev section of your composer.json file.

现在,在我引入上述更改并运行 composer update 后,出现以下错误:

Now, after I introduce the above changes and run composer update, I get the following error(s):

PHP Fatal error:  Class 'IlluminateRoutingControllerServiceProvider' not found 
in /home/vagrant/Code/myproject/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 146

[SymfonyComponentDebugExceptionFatalErrorException]
Class 'IlluminateRoutingControllerServiceProvider' not found

[RuntimeException]
Error Output: PHP Fatal error:  Class 'IlluminateRoutingControllerServiceProvider' not found in /home/vagrant/Code/myproject/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 146

在更新完成后抛出错误,并发生生成自动加载文件".

The errors are thrown after the update is done, and "Generating autoload files" takes place.

可能有什么问题?

这看起来不像是自定义包问题,而是核心问题.我是否应该继续升级指南并在所有内容都已调整以适应新框架版本后运行 composer update?

It does not look like a custom package issue, but a core one. Should I continue with the upgrade guide and run composer update AFTER all has been adjusted to suit the new framework version?

更新

之后运行 composer dump-autoload 不会抛出上述错误.不过还是很困惑.

Running composer dump-autoload afterwards doesn't throw the errors described above. Still confusing, though.

推荐答案

不再有IlluminateRoutingControllerServiceProvider.

如果我是你,我会将我的应用项目与 https://github.com/laravel/laravel/commits/develop 进行比较,例如,如果您查看 https://github.com/laravel/laravel/blob/develop/config/app.php 你会看到 Laravel 5.2 的默认提供者:

If I were you, I would compare my app project to https://github.com/laravel/laravel/commits/develop, if you for example look at https://github.com/laravel/laravel/blob/develop/config/app.php you will see default providers for Laravel 5.2:

IlluminateAuthAuthServiceProvider::class,
IlluminateBroadcastingBroadcastServiceProvider::class,
IlluminateBusBusServiceProvider::class,
IlluminateCacheCacheServiceProvider::class,
IlluminateFoundationProvidersConsoleSupportServiceProvider::class,
IlluminateCookieCookieServiceProvider::class,
IlluminateDatabaseDatabaseServiceProvider::class,
IlluminateEncryptionEncryptionServiceProvider::class,
IlluminateFilesystemFilesystemServiceProvider::class,
IlluminateFoundationProvidersFoundationServiceProvider::class,
IlluminateHashingHashServiceProvider::class,
IlluminateMailMailServiceProvider::class,
IlluminatePaginationPaginationServiceProvider::class,
IlluminatePipelinePipelineServiceProvider::class,
IlluminateQueueQueueServiceProvider::class,
IlluminateRedisRedisServiceProvider::class,
IlluminateAuthPasswordsPasswordResetServiceProvider::class,
IlluminateSessionSessionServiceProvider::class,
IlluminateTranslationTranslationServiceProvider::class,
IlluminateValidationValidationServiceProvider::class,
IlluminateViewViewServiceProvider::class,
/*
 * Application Service Providers...
 */
AppProvidersAppServiceProvider::class,
AppProvidersAuthServiceProvider::class,
AppProvidersEventServiceProvider::class,
AppProvidersRouteServiceProvider::class,

相关文章