ライブラリを機能させることができません。ディレクトリ構造は lib-name/src で、内部にはメイン ディレクトリとテスト ディレクトリがあります。composer に /lib-name/src/main フォルダからロードするように指示するにはどうすればよいですか?
私のライブラリ github へのリンクhttps://github.com/gerardorn/catalogo
ライブラリを機能させることができません。ディレクトリ構造は lib-name/src で、内部にはメイン ディレクトリとテスト ディレクトリがあります。composer に /lib-name/src/main フォルダからロードするように指示するにはどうすればよいですか?
私のライブラリ github へのリンクhttps://github.com/gerardorn/catalogo
コンポーザーで自動ロードするためにクラスをマップする方法は3つあります。
推奨される方法はPSR-0互換です。このプロトコルは、ライブラリのディレクトリ構造を記述します。各名前空間はディレクトリである必要があります。アンダースコアのあるクラスも区切られます(PEARスタイル)。
あなたの場合、 Catalogableクラスには名前空間がありますgerardorn\catalogo
。PSR-0と互換性を持たせるために、ディレクトリ構造は次のとおりです。
- src
- main
- gerardorn
- catalogo
- Catalogable.php
あなたcomposer.json
の中に以下を入れるべきです:
"autoload" : {
"psr-0" : {"gerardorn" : "src/main"}
}
または、を使用することもできますclassmap
。名前空間に関係なく、ディレクトリ内でクラスが検索されます。
"autoload": {
"classmap": ["src/main"]
}
3番目の方法files
はあなたの場合には当てはまりません。
PHPUnitはライブラリをテストするために必要ですが、ライブラリを実行するためには必要ないことに注意してください。したがって、それを必須のライブラリとして提示するべきではありません。
ユニットテストを書いているのは良いことです。TravisCIにサインアップする必要があります。GitHubにプッシュするたびにPHPUnitテストが実行され、何かが壊れた場合は(電子メールで)警告されます。
ディレクトリ構造はPSR-0互換である必要があります。
つまり、Catalogable.phpファイルには名前空間gerardorn\catalogo
があるため、このディレクトリ構造は次のように一致する必要があります。
- src
- main
- gerardorn
- catalogo