アプリのバンドル外のさまざまなプロジェクトで使用するコードを配置したいと考えています。vendor フォルダー内の新しいフォルダーに入れましたが、プロジェクトに含めることができません。手順はどれですか?
- フォルダと名前空間の特別な構造に従うべきですか
- プロジェクトに含める方法を教えてください。
Google で、あいまいな回答がたくさん見つかりました。私もこれを試しましたが、うまくいきませんでした。
ライブラリをロードする必要があります。これを行うには、composer にライブラリの場所を伝えます。
最良の方法は、このソース コードの git リポジトリをセットアップし、composer を使用してそれをロードし、最新の状態に保ち、オートローダーに含めることです。これを行うには composer に慣れる必要があるかもしれませんが、composer は php のデフォルトの依存関係管理ツールを取得しているため、時間は無駄になりません。ここでドキュメントを見つけることができます: http://getcomposer.org/doc/
これを行いたくない場合は、新しい src コード フォルダーを composer に追加できます。フォルダー構造が次のようになっているとします。
symfony2/ vendor/ yourlibrary/ Bla/ Blub/ MyClass.php
まず、MyClass.php に名前空間 Bla/Blub が定義されている必要があります。それ以外の場合は、次のようにライブラリを composer.json ファイルに追加できます。
"autoload": {
"psr-0": {
"": "src/",
"Bla": "vendor/yourlibrary/"
}
}
既に autoload が定義されているので、上書きする必要があります!
ライブラリに名前空間がない場合でも、それをロードするように composer を定義できます。私はこれを使用していないので、それを読むことができるドキュメントをリンクすることができます: http://getcomposer.org/doc/04-schema.md#autoload