致命错误:类。。。在…中找不到/第146行的ProviderRepository.php
这听起来像是个小错误,但我已经好几个小时找不到解决办法了 我尝试在我的Laravel项目中使用,并使用composer添加了它 这是我的composer.json致命错误:类。。。在…中找不到/第146行的ProviderRepository.php,php,laravel,laravel-5,composer-php,laravel-5.1,Php,Laravel,Laravel 5,Composer Php,Laravel 5.1,这听起来像是个小错误,但我已经好几个小时找不到解决办法了 我尝试在我的Laravel项目中使用,并使用composer添加了它 这是我的composer.json { "name": "laravel/laravel", "description": "The Laravel Framework.", "keywords": ["framework", "laravel"], "license": "MIT", "type": "project",
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
"michaelb/laravel-db2": "~2.0"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"phpspec/phpspec": "~2.1"
},
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"pre-update-cmd": [
"php artisan clear-compiled"
],
"post-update-cmd": [
"php artisan optimize"
],
"post-root-package-install": [
"php -r \"copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
}
}
以下是错误:
PHP Fatal error: Class 'MichaelB\Database\DB2\DB2ServiceProvider' not found in /var/www/html/mysjsu/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 146
及
我以前在StackOverflow上发现了一个类似的问题,有人建议订单很重要。下面是我按照以下顺序所做的:
“michaelb/laravel-db2”:“~2.0”
到composer.json
php../composer.phar更新
MichaelB\Database\DB2\DB2ServiceProvider::class
添加到config/app.php
知道问题出在哪里吗?这个包是
cooper/laravel-db2
的一个分支。文件不准确
他将名称空间更改为MichaelB
,但从未将其标记为稳定版本,因此当您需要composer的~2.0
时,packagist会为您提供名称空间错误的旧版本
因此,当您运行composer update
时,它会运行一些post-cmd脚本,例如php-artisan-optimize
,该脚本试图从配置文件中提取,但由于该类不存在而失败
以下是修复方法:
"michaelb/laravel-db2": "dev-master"
composer更新--无脚本
那么您应该很好。这个包是
cooper/laravel-db2
的一个分支。文件不准确
他将名称空间更改为MichaelB
,但从未将其标记为稳定版本,因此当您需要composer的~2.0
时,packagist会为您提供名称空间错误的旧版本
因此,当您运行composer update
时,它会运行一些post-cmd脚本,例如php-artisan-optimize
,该脚本试图从配置文件中提取,但由于该类不存在而失败
以下是修复方法:
"michaelb/laravel-db2": "dev-master"
composer更新--无脚本
那你应该很好。@andrewtweber我尝试了重做一切,然后使用
composer安装
,并执行composer更新--没有脚本
,但没有修复它。看起来链接中的那个家伙还没有安装软件包,而我已经安装了。实际上,我可以在vendor
目录下看到包的文件夹,它有类DB2ServiceProvider
,这正是编译器抱怨的文件。知道为什么吗?感谢您的帮助,如果这听起来很重复,很抱歉composer dumpautoload
和php artisan optimize
@andretwebre我可以做composer dumpautoload
,但是对于php artisan optimize
我必须从providers数组中注释掉MichaelB\Database\DB2\DB2ServiceProvider::class
。如果我没有注释掉那一行,我会得到同样的错误。我仍在努力理解这里的问题是什么,我看不出这辆车有什么毛病files@andrewtweber似乎只有当我运行任何php artisan
命令而没有从providers数组中删除MichaelB\Database\DB2\DB2ServiceProvider::class
并在providers数组中注释该行,然后运行这些命令时,才会出现错误,然后取消注释?@andrewtweber我尝试了重做一切,然后使用composer安装
,并执行composer更新--没有脚本
,但没有修复它。看起来链接中的那个家伙还没有安装软件包,而我已经安装了。实际上,我可以在vendor
目录下看到包的文件夹,它有类DB2ServiceProvider
,这正是编译器抱怨的文件。知道为什么吗?感谢您的帮助,如果这听起来很重复,很抱歉composer dumpautoload
和php artisan optimize
@andretwebre我可以做composer dumpautoload
,但是对于php artisan optimize
我必须从providers数组中注释掉MichaelB\Database\DB2\DB2ServiceProvider::class
。如果我没有注释掉那一行,我会得到同样的错误。我仍在努力理解这里的问题是什么,我看不出这辆车有什么毛病files@andrewtweber似乎只有当我运行任何php artisan
命令而没有从providers数组中删除MichaelB\Database\DB2\DB2ServiceProvider::class
并在providers数组中注释该行,然后运行这些命令时,才会出现错误,然后取消注释?实际上,依赖分支是一件坏事。打开一个问题,让开发人员标记一个新版本。@Sven这是真的。这家伙在他的GitHub项目中禁用了问题。。。那怎么办呢?我建议teamf使用不同的项目或原始源代码(cooper/laravel-db2
)而不是这个fork,除非有某种原因他需要这个fork:如果没有工作版本,也没有报告问题的方法,您会期望软件在主分支上完美工作吗?共注册了77000个软件包,其中350000个不同版本。应该有一个具有更好开发人员支持的包来解决这个问题。远离维护糟糕的包。实际上,依赖分支是一件坏事。打开一个问题,让开发人员标记一个新版本。@Sven这是真的。这家伙在他的GitHub项目中禁用了问题。。。那怎么办呢?我建议teamf使用不同的项目或原始源代码(cooper/laravel-db2
)而不是这个fork,除非有某种原因他需要这个fork:如果没有工作版本,也没有报告问题的方法,您会期望软件在主分支上完美工作吗?