1

ライブラリを機能させることができません。ディレクトリ構造は lib-name/src で、内部にはメイン ディレクトリとテスト ディレクトリがあります。composer に /lib-name/src/main フォルダからロードするように指示するにはどうすればよいですか?

私のライブラリ github へのリンクhttps://github.com/gerardorn/catalogo

4

2 に答える 2

7

コンポーザーで自動ロードするためにクラスをマップする方法は3つあります。

PSR-0

推奨される方法は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

PHPUnitはライブラリをテストするために必要ですが、ライブラリを実行するためには必要ないことに注意してください。したがって、それを必須のライブラリとして提示するべきではありません。

ユニットテストを書いているのは良いことです。TravisCIにサインアップする必要があります。GitHubにプッシュするたびにPHPUnitテストが実行され、何かが壊れた場合は(電子メールで)警告されます。

于 2013-03-03T10:53:11.703 に答える
2

ディレクトリ構造はPSR-0互換である必要があります。

つまり、Catalogable.phpファイルには名前空間gerardorn\catalogoがあるため、このディレクトリ構造は次のように一致する必要があります。

- src
    - main
        - gerardorn
            - catalogo
于 2013-03-03T10:35:52.420 に答える