【问题标题】:Laravel deleting package with composerLaravel 使用 composer 删除包
【发布时间】:2016-05-25 19:14:18
【问题描述】:

我试图从我的 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

我尝试了转储自动加载,清晰编译,但没有任何效果。

我错过了什么?


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

【问题讨论】:

    标签: laravel composer-php laravel-5.2


    【解决方案1】:

    当您安装 Debugbar 时,在通过 composer 安装包后,您需要将该类添加到 config/app.php 中的 providers 数组中。所以你需要从那里删除这一行:

    Barryvdh\Debugbar\ServiceProvider::class
    

    如果您还注册了外观,则需要从同一文件的aliases 数组中删除以下内容:

    'Debugbar' => Barryvdh\Debugbar\Facade::class
    

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

    【讨论】:

    • 对不起,当我说“我删除了 app/config 中的引用”时,我的意思是 int “config/app.php”。我的错 !它已被删除,但这似乎不起作用。
    • 运行php artisan clear-compiled 应该已经删除了存储在bootstrap/cache 中的所有编译文件,包括在那里找到的services.php 文件,其中包含缓存的服务提供程序类的列表。您可以检查并确认文件是否在命令运行后被删除,如果没有则自行删除。如果问题仍然存在,请在所有应用程序文件中对文本 Barryvdh\Debugbar\ServiceProvider 进行全局搜索,以查看您可能对提供程序类的任何剩余引用(尽管引导缓存文件是唯一有意义的)。跨度>
    • 谢谢,我今晚去看看。
    • 抱歉耽搁了。 php artisan clear-compiled 抛出相同的错误。我查看了文件,唯一的提及(除了日志文件)在这里可见:pastebin.com/TmrspnZu
    【解决方案2】:

    好吧,我好像玩过artisan命令,配置文件被缓存了(通过php artisan config:cache)。

    我删除了它(在 bootstrap/cache/config.php 中),一切都像一个魅力,但我也可以使用命令 php artisan config:clear 来删除它。

    【讨论】:

    • 感谢您编写解决方案!这也是我这边的问题,没有其他修复工作。 :)
    【解决方案3】:

    你必须:

    首先。删除config/app.php中对Debugbar的引用

    第二。作曲家删除 barryvdh/laravel-debugbar

    按这个顺序。如果你不这样做,Laravel 会感到困惑 ;)

    【讨论】:

    • 我忘了告诉您,您可以再次执行 composer require barryvdh/laravel-debugbar 以将其恢复到“安装点”,然后他们将其删除,以正确的顺序执行这两个步骤。跨度>
    • 谢谢,但我已经找到了解决问题的方法(更具体)。但是,您的评论仍然有效。
    【解决方案4】:

    Marc Brillault 的回答是正确的。我正在为该答案添加更多说明:

    我从 catch 文件中手动删除了调试栏类。出现在 (bootstrap/cache/config.php)。

    如何手动删除类的步骤。

    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 运行良好。

    【讨论】:

    • 请问,您的回答与我已经给出的回答有何不同?你甚至复制/粘贴了第一行。
    【解决方案5】:

    您需要做的最好的方法是手动删除所有作曲家文件中的所有文件。

    【讨论】:

    • 这与作曲家删除没有太大区别,也不会解决这个(特定)问题
    猜你喜欢
    • 2014-06-01
    • 2014-07-29
    • 2018-03-25
    • 2017-10-04
    • 2016-04-20
    • 1970-01-01
    • 2020-12-06
    • 2015-05-23
    相关资源
    最近更新 更多