使用Composer删除Laravel包

3
我试图从我的Laravel安装中删除barryvdh/laravel-debugbar,但似乎我做错了什么。
到目前为止我做的事情:
- 运行composer remove barryvdh/laravel-debugbar - 然后我删除了config/app.php中的引用
然后我收到了一个错误消息:
[RuntimeException]
Error Output: PHP Fatal error:
Class 'Barryvdh\Debugbar\ServiceProvider' not found in 
{mypath}\vendor\laravel\framework\src\Illuminate\Foundation\ProviderRepository.php on line 146

我尝试了dump-autoload和clear-compiled,但都没有起作用。

我错过了什么?


22/02/2016 编辑:我也尝试过删除所有的vendor文件夹,然后再通过composer install重新安装,但当运行命令php artisan clear-compiled时,我再次遇到了错误。

5个回答

4

好的,看起来我已经使用artisan命令,并且配置文件已经被缓存 (通过 php artisan config:cache).'

我删掉了它 (在 bootstrap/cache/config.php),一切都非常顺利,但是我也可以使用命令php artisan config:clear来删除它。


感谢您写出这个解决方案!这也是我遇到的问题,其他的修复方法都没有起作用。 :) - Mohamed Ebrahim

3
安装Debugbar后,通过composer安装软件包后,您需要将该类添加到config/app.php中的providers数组中。因此,您需要从那里删除此行:
Barryvdh\Debugbar\ServiceProvider::class

如果您还注册了门面,那么您需要从相同文件的aliases数组中删除以下内容:
'Debugbar' => Barryvdh\Debugbar\Facade::class

如果您也运行了php artisan vendor:publish(这是包自述文件中安装部分描述的最后一步),那么您也可以删除config/debugbar.php文件,尽管保留该配置文件不会引起任何问题。

抱歉,当我说“我删除了app/config中的引用”时,我指的是“config/app.php”。我的错误!它已被删除,但似乎并没有起作用。 - Marc Brillault
运行 php artisan clear-compiled 应该已经删除了存储在 bootstrap/cache 中的所有编译文件,包括其中找到的 services.php 文件,其中包含缓存的服务提供者类列表。您可以检查并确认命令运行后是否删除了这些文件,如果没有,请手动删除它们。如果问题仍然存在,请在所有应用程序文件中全局搜索文本 Barryvdh\Debugbar\ServiceProvider,以查看您可能仍然有对提供程序类的引用(尽管引导缓存文件是唯一有意义的)。 - Bogdan
谢谢,我今晚会看一下。 - Marc Brillault
抱歉耽搁了。php artisan clear-compiled 抛出相同的错误。我查看了文件,除了日志文件之外,唯一的提及都在这里可见:http://pastebin.com/TmrspnZu - Marc Brillault

3

马克·布里洛的回答是正确的。我在此回答中添加更多澄清:

我手动从 (bootstrap/cache/config.php) 中的 catch 文件中删除了 debug bar 类。

手动删除类的步骤如下。

1.) Open this two files 
   `bootstrap/cache/config.php`
   `config/app.php`

2.) Find this two line and remove It.        
    Barryvdh\Debugbar\ServiceProvider::class,
   'Debugbar' => Barryvdh\Debugbar\Facade::class,

3.) run command `php artisan config:clear`

在执行以下步骤后,请检查命令 php artisan list 是否正常工作。

请问,您的回答与我已经给出的有何不同?您甚至复制/粘贴了第一行。 - Marc Brillault

1

你必须:

第一步。在config/app.php中删除对Debugbar的引用。

第二步。运行composer remove barryvdh/laravel-debugbar命令。

按照这个顺序执行,否则Laravel会变得混乱 ;)


我忘了告诉你,你可以再次运行composer require barryvdh/laravel-debugbar将其恢复到“已安装状态”,然后按正确顺序执行这两个步骤来删除它。 - Xurde Durán
谢谢,但我已经找到了解决我的问题的方法(更具体)。不过,你的评论仍然是有价值的。 - Marc Brillault

1

最好的方法是手动删除所有composer文件中的所有文件。


这与删除作曲家并没有太大的区别,并且无法解决这个(具体)问题。 - Marc Brillault

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接