Composer 内の独自のパッケージが とは別のフォルダーにインストールされるように指定することは可能ですかvendor/
。すべてのパッケージがインストールされるフォルダーを指定できることはわかっていますが、それは私が望むものではありません。vendor/
サード パーティのパッケージを、独自のsrc/
フォルダ内に配置したいと考えています。
これは可能ですか?それが重要な場合は、Symfony 2 を使用しています。
Composer 内の独自のパッケージが とは別のフォルダーにインストールされるように指定することは可能ですかvendor/
。すべてのパッケージがインストールされるフォルダーを指定できることはわかっていますが、それは私が望むものではありません。vendor/
サード パーティのパッケージを、独自のsrc/
フォルダ内に配置したいと考えています。
これは可能ですか?それが重要な場合は、Symfony 2 を使用しています。
おそらく独自のインストーラーを作成する必要があります:http://getcomposer.org/doc/faqs/how-do-i-install-a-package-to-a-custom-path-for-my-framework.mdそして独自のインストーラーを使用するinstaller-paths
この composer プラグインを実装して、パッケージをユーザー (カスタム) 定義のフォルダーにインストールしました。composer.json に含めることができます。例に従って、さらに質問がある場合は教えてください:)
https://github.com/mnsami/composer-custom-directory-installer
composer プラグイン。異なるタイプの composer パッケージを、フォルダー内にあるデフォルトの composer デフォルト・インストール・パスの外側のカスタム・ディレクトリーにインストールしvendor
ます。
composer-installer
これは、composer 以外のパッケージ タイプ (.. など) をサポートするための別のライブラリではありませんapplication
。これは、ベンダー フォルダの外に composer パッケージをインストールする柔軟性を追加するためだけのものです。このパッケージは、composer
パッケージ タイプのみをサポートします。
https://getcomposer.org/doc/04-schema.md#type
パッケージのタイプ。デフォルトはライブラリです。
パッケージ タイプは、カスタム インストール ロジックに使用されます。特別なロジックが必要なパッケージがある場合は、カスタム タイプを定義できます。これは、symfony-bundle、wordpress-plugin、または Typo3-module である可能性があります。これらのタイプはすべて特定のプロジェクトに固有であり、そのタイプのパッケージをインストールできるインストーラーを提供する必要があります。
composer.json
require
セクションに含めます::"require":{
"php": ">=5.3",
"mnsami/composer-custom-directory-installer": "1.1.*",
"monolog/monolog": "*"
}
extra
パッケージをインストールするカスタム ディレクトリを定義します。 "extra":{
"installer-paths":{
"./monolog/": ["monolog/monolog"]
}
この部分を追加することで、ルート ディレクトリのフォルダー内にパッケージinstaller-paths
をインストールするように composer に指示します。monolog
monolog
composer/installers
ような変数を使用できます。{$vendor}
{$name}
installer-path
"extra": {
"installer-paths": {
"./customlibs/{$vendor}/db/{$name}": ["doctrine/orm"]
}
}
doctrine/orm
上記は、パッケージをプロジェクトのルートフォルダーの の下にインストールすることを管理しますcustomlibs
。
Composertype: project
は、このインストーラーではサポートされていません。タイプのパッケージは、別のパッケージで必要とされるproject
などのアプリケーション シェルで使用する場合にのみ意味があるためです。symfony/framework-standard-edition
それでも問題が解決しない場合は、私のライブラリをテストすることを検討してください ( min.nsamiによるプラグインに基づく):
https://github.com/ideaconnect/composer-custom-directory
カスタムパスを許可:
"extra":{
"installer-paths":{
"./monolog/": ["monolog/monolog"]
}
さらには動的な名前の置換:
"extra": {
"installer-paths": {
"./packages/{$name}": ["sourcepackage/package_A","sourcepackage/package_B","sourcepackage/package_B"]
}
},
実行時に変数を簡単に操作できるようにするフラグチェーンを使用します。
現在サポートされているフラグは次のとおりです。
F - capitalizes first letter.
P - changes all entries of a _ or - followed by a character to only that character, capitalized.