ワークベンチでの開発で使用すると正しく動作する 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" } } }], ...
私のパッケージ Service Provider を app/config/app.php に追加しました:
'providers' => array( 'Fhoule\Dynamite\DynamiteServiceProvider', )
それが私のアプリケーションがエラーを返す場所ですClass 'Fhoule\Dynamite\DynamiteServiceProvider' not found
。
私の問題は何ですか?