私はこの定義を持っています:
{
"repositories": [
{
"type": "package",
"package": {
"name": "symfony/sfGuardPlugin",
"version": "4.0.2",
"dist": {
"url": "http://plugins.symfony-project.org/get/sfGuardPlugin/sfGuardPlugin-4.0.2.tgz",
"type": "tar"
}
}
}
],
"require": {
"symfony/sfGuardPlugin": "4.0.*"
}
}
Symfony 1を使用していますが、plugins/sfGuardPlugin/
にインストールしたいと思います。これを指定するにはどうすればよいですか?
vendor
dirを 何か他のもの (あなたの場合はplugins
)に定義できるようです:
{
"config": {
"vendor-dir": "plugins"
}
}
次に、パッケージ名の名前を変更して、内部にレベルdirがないようにします。
"package": {
"name": "sfGuardPlugin",
したがって、composer.json
は次のようになります。
{
"config": {
"vendor-dir": "plugins"
},
"repositories": [
{
"type": "package",
"package": {
"name": "sfGuardPlugin",
"version": "4.0.2",
"dist": {
"url": "http://plugins.symfony-project.org/get/sfGuardPlugin/sfGuardPlugin-4.0.2.tgz",
"type": "tar"
}
}
}
],
"require": {
"sfGuardPlugin": "4.0.*"
}
}
編集
この設定を使用して、パスを取得します(もちろんはsymfonyには適していません):
plugins/sfGuardPlugin/sfGuardPlugin-4.0.2 /
このcomposer.json
で回避策を見つけました:
{
"config": {
"vendor-dir": "plugins"
},
"repositories": [
{
"type": "package",
"package": {
"name": "sfGuardPlugin",
"version": "4.0.2",
"source": {
"url": "http://svn.symfony-project.com/plugins/sfGuardPlugin/",
"type": "svn",
"reference": "branches/1.3/"
}
}
}
],
"require": {
"sfGuardPlugin": "4.0.*"
}
}
composer/installers を使用することもできます。これは、「symfony1-plugin」パッケージタイプのマルチフレームワークcomposerライブラリインストーラーです。 Symfony 1.4(lib/vendor)とプラグイン(/ plugins)の両方をインストールするために、これはcomposer.jsonファイルの外観です。
{
"config": {
"vendor-dir": "lib/vendor"
},
"repositories": {
"symfony": {
"type": "package",
"package": {
"name": "symfony/symfony1",
"version": "1.4",
"dist": {
"url": "https://github.com/symfony/symfony1/zipball/1.4",
"type": "Zip"
}
}
},
"sfResquePlugin" : {
"type": "package",
"package": {
"name": "devpips/sfResquePlugin",
"type": "symfony1-plugin",
"version": "0.1",
"dist": {
"url": "https://github.com/devpips/sfResquePlugin/zipball/master",
"type": "Zip"
}
}
}
},
"require": {
"composer/installers": "dev-master",
"symfony/symfony1": "1.4",
"devpips/sfResquePlugin":"0.1"
}
}
COMPOSER_VENDOR_DIR
環境変数を参照してください。
この変数を設定することにより、Composerにベンダー以外のディレクトリに依存関係をインストールさせることができます。
これを共有フォルダーに入れたくないvagrantなどの特定の環境でこれをオーバーライドする場合に役立ちます。
J0kが言ったように、vendor-dir
のconfig
セクションに composer.json
があります
デフォルトはベンダーです。必要に応じて、依存関係を別のディレクトリにインストールできます。 $ HOMEおよび〜は、vendor-dirおよび以下のすべての* -dirオプションのホームディレクトリのパスに置き換えられます。