在 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游记