我为 Laravel 4 创建了一个包,该包在工作台开发中使用时可以正常工作,但是当我使用 Composer 安装它时,它一直向我返回错误Class 'Myvendor\Mypackage\MypackageServiceProvider' not found
。
我的包有一个特殊性,即我的类源的名称与我的包的名称不同。通常它们是相同的。
vendor/
Houle/
laravel-dynamite/
src/
Fhoule/
Dynamite/
DynamiteServiceProvider.php
我知道它可以工作,因为 Laravel 也是这样工作的。
vendor/
laravel/
framework/
src/
Illuminate/
我的包composer.json的属性PSR-0似乎配置正确:
"name": "Houle/laravel-dynamite",
...
"require": {
"php": ">=5.3.0",
"illuminate/support": "4.0.x"
},
"autoload": {
"classmap": [
"src/migrations",
"src/controllers",
"src/models"
],
"psr-0": {
"Fhoule\\Dynamite": "src/"
}
},
...
我是如何创建我的包的:
- 使用 Artisan 创建包。
- 使其在工作台目录中正常工作
- 推送到私人 Bitbucket 存储库
- 安装了新的 Laravel 实例
更改了composer.json配置以安装我的包(来自私有存储库)
"name": "laravel/laravel", ... "require": { "laravel/framework": "4.0.*", "Houle/laravel-dynamite": "2.0.1" }, "repositories": [{ "type": "package", "package": { "name": "Houle/laravel-dynamite", "version": "2.0.1", "source": { "url": "git@bitbucket.org:Houle/laravel-dynamite.git", "type": "git", "reference": "v2.0.1" } } }], ...
将我的包服务提供者添加到 app/config/app.php:
'providers' => array( 'Fhoule\Dynamite\DynamiteServiceProvider', )
那是我的应用程序返回错误的地方Class 'Fhoule\Dynamite\DynamiteServiceProvider' not found
。
我的问题可能是什么?