在 ProviderRepository.php 第 208 行中找不到提供程序类

Posted

技术标签:

【中文标题】在 ProviderRepository.php 第 208 行中找不到提供程序类【英文标题】:Provider Class not found In ProviderRepository.php line 208 【发布时间】:2019-05-09 10:03:48 【问题描述】:

我尝试卸载 spatie/Geocoder 包 https://github.com/spatie/geocoder 它来自我的 laravel 应用程序,它从 Github 中提取了包,但包卸载不成功。

下面是 composer 命令返回的错误

终端屏幕截图:

提前致谢

【问题讨论】:

你跑composer dumpautoload了吗? 您是否尝试清除您的配置? php artisan config:clear 是同时运行命令 composer dumautoload 和 php artisan config:clear 但给出相同的错误@aynber 请以可读的形式分享错误信息 - 文本最好作为文本分享。此外,您如何卸载该软件包? 【参考方案1】:

删除下面的行:

// config/app.php
'providers' => [
    '...',
    Spatie\Geocoder\GeocoderServiceProvider::class
];
// config/app.php
'aliases' => array(
    ...
    'Geocoder' => Spatie\Geocoder\Facades\Geocoder::class,
)

在您的服务器控制台中运行“composer du”。

【讨论】:

已经从配置文件中删除了这些行,但没有工作,显示相同的错误@arthur Samarcos【参考方案2】:

只需按照以下步骤即可解决问题。转到您的项目 > bootstrap->cache->config.php 手动从缓存数组中删除提供程序和别名。

【讨论】:

完美的解决方案,如果没有找到任何提供程序文件,它可以在这种情况下工作。【参考方案3】:

我在之前的 laravel 项目中遇到了同样的问题。

先试一试:

service apache2 restart

或任何类似的命令,具体取决于您的操作系统,例如我重新启动了我的 wamp 服务器。

然后在你的 Laravel 文件夹中:

composer dump-autoload

希望对你有帮助。

【讨论】:

对我不起作用【参考方案4】:

我遇到了同样的问题。我尝试了转储自动加载,清除配置等等,但没有任何效果。最后,我从 bootstrap/cache 中删除了 config.php,然后运行了 composer dump-autoload。那行得通。

【讨论】:

没有帮助我:( 它对我不起作用【参考方案5】:

首先检查 composer.json 文件,在 autoload 部分的 psr-4 键下,您可以定义从命名空间到路径的映射,相对于包根目录。

   
"autoload": 
    "psr-4": 
         "Spatie\\Geocoder\\": "src" //<<---For example, in your case, this mapping should be done
    

然后运行以下命令重新生成项目中需要包含的所有类的列表

composer dump-autoload

有关更多信息和示例,请查看此链接 https://getcomposer.org/doc/04-schema.md#autoload

【讨论】:

请在您的答案中添加一些解释,以便其他人可以从中学习 - 应该为未安装的包添加哪些映射? 感谢您的指导,如果不清楚,我很抱歉。我添加了更多细节,希望对您有用。 你还没有告诉为什么需要这样做。 OP 删除了该包,因此不应加载该命名空间中的任何内容。 我的语言不是英语,请在您的评论中添加一些解释;)什么是 OP?这个错误与这个包无关,它与 laravel core 一起抛出。我在安装 laravel 模块包时遇到了这个错误,我设置了相同的配置来修复它!【参考方案6】:

对我来说最简单的事情就是删除 /bootstrap/cache/ 中的文件。这些将自动重新生成。

【讨论】:

但文件再次出现然后又出错 首先从 app.php 中删除提供者和别名。然后删除 /bootstrap/cache 目录,然后在 bootstrap 目录中再次创建目录缓存目录。继续运行 composer dump-autoload。【参考方案7】:

最终,对我有用的修复:

删除文件夹“vendor”,然后再次运行composer install

更具体的修复可能是可能的,但这无论如何都会很好地清理。

【讨论】:

唯一对我有用的解决方案,因为我在 bootstrap/cache 文件夹中没有 config.php 文件。旧的包别名仍然保留在某些文件中,但似乎没有出错。 为我工作,似乎 composer.lock 没有更新最新要求【参考方案8】:

app\config.php

替换

JeroenNoten\LaravelAdminLte\ServiceProvider::class,

JeroenNoten\LaravelAdminLte\AdminLteServiceProvider::class,

然后做任何你想做的事。

【讨论】:

【参考方案9】:

尝试完全删除app\config.php 文件或删除app\config.php 中与Spatie\Geocoder\GeocoderServiceProvider 关联的提供程序/别名。

【讨论】:

【参考方案10】:

这是为我整理的。

我导航到

project > bootstrap->cache folder.

那里,有这个文件

packages.php

我删除了。

rm packages.php

然后我跑了

composer dump-autoload

请注意,在运行上述命令之前,我尝试运行以下命令,但没有成功

composer dump-autoload --no-dev

我在生产中运行了上述内容。

【讨论】:

【参考方案11】:

config/app.php 中删除JeroenNoten\LaravelAdminLte\ServiceProvider::class 即可解决问题

【讨论】:

【参考方案12】:

    运行:composer update

    运行:composer dump-autoload

Laravel 8.x 对我有用

【讨论】:

在大多数情况下,像这次作曲家更新为我完成了工作。【参考方案13】:

使用这 3 个命令来修复错误。

composer install --optimize-autoloader --no-dev
    
php artisan config:cache

php artisan cache:clear

【讨论】:

以上是关于在 ProviderRepository.php 第 208 行中找不到提供程序类的主要内容,如果未能解决你的问题,请参考以下文章

使用php artisan app后的Laravel5.5:未找到名称类

分配的变量引用在哪里,在堆栈中还是在堆中?

NOIP 2015 & SDOI 2016 Round1 & CTSC 2016 & SDOI2016 Round2游记

秋的潇洒在啥?在啥在啥?

上传的数据在云端的怎么查看,保存在啥位置?

在 React 应用程序中在哪里转换数据 - 在 Express 中还是在前端使用 React?