首页 > 解决方案 > 从 Laravel 5.1 升级到 5.2 时找不到类 'Illuminate\Routing\ControllerServiceProvider'

问题描述

我有一个正在升级的 Laravel 5.1 安装。我一丝不苟地按照https://laravel.com/docs/5.3/upgrade#upgrade-5.2.0上的说明进行升级,包括从config/app中删除Illuminate\Foundation\Providers\ArtisanServiceProviderIlluminate\Routing\ControllerServiceProvider .php文件(我强调这一点,因为谷歌搜索这个问题在每个回复中都暗示了这一点)。

尽管如此,当我运行 composer cache:clear时仍然出现此错误

[Symfony\Component\Debug\Exception\FatalThrowableError]
Class 'Illuminate\Routing\ControllerServiceProvider' not found error 

并在我的浏览器中看到此错误:

FatalThrowableError in ProviderRepository.php line 146:
Class 'Illuminate\Routing\ControllerServiceProvider' not found

考虑到这些类的引用可能正在被缓存,我检查了bootstrap/cache/services.json并从那里删除了引用,然后运行 ​​composer dump-autoload 但我仍然收到此错误。

我还确保从 Laravel 5.2 全新安装示例中复制示例config/app.php : https ://raw.githubusercontent.com/ziyed/Laravel-5.2/master/vendor/laravel/framework/src/Illuminate/Foundation /ProviderRepository.php

我已经阅读了 StackOverflow 和 Laracast 上的类似线程,并尝试使用其中包含的建议,但似乎没有任何效果。

任何帮助将不胜感激。作为参考,我的开发设置在 Windows 10 操作系统下的本地 XAMPP 堆栈上运行。其他环境是远程的,使用带有 Amazon Linux 2 的传统 LAMP 堆栈。我试图在本地进行升级。

标签: laravel-5composer-php

解决方案


Illuminate\Routing\ControllerServiceProvider不再存在。

当我最近不得不升级与您相同的版本时,我必须在删除Illuminate\Routing\ControllerServiceProvider::classIlluminate\Foundation\Providers\ArtisanServiceProvider::class之前和之后运行composer update以使其工作。还值得一提的是,您需要清除引导程序/缓存。它对我有用。

编辑:我现在注意到你也部分地尝试了最后一步。您可以从缓存中删除所有 php 文件。


推荐阅读