7

Composer 内の独自のパッケージが とは別のフォルダーにインストールされるように指定することは可能ですかvendor/すべてのパッケージがインストールされるフォルダーを指定できることはわかっていますが、それは私が望むものではありません。vendor/サード パーティのパッケージを、独自のsrc/フォルダ内に配置したいと考えています。

これは可能ですか?それが重要な場合は、Symfony 2 を使用しています。

4

3 に答える 3

6

おそらく独自のインストーラーを作成する必要があります:http://getcomposer.org/doc/faqs/how-do-i-install-a-package-to-a-custom-path-for-my-framework.mdそして独自のインストーラーを使用するinstaller-paths

于 2012-11-15T07:51:11.897 に答える
4

この composer プラグインを実装して、パッケージをユーザー (カスタム) 定義のフォルダーにインストールしました。composer.json に含めることができます。例に従って、さらに質問がある場合は教えてください:)

https://github.com/mnsami/composer-custom-directory-installer

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 プラグインを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 に指示します。monologmonolog

  • 追加された新機能として、 と同じようにダウンロード ディレクトリをより柔軟に定義できるようになりました。つまり、セクションでやの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

于 2014-02-05T20:47:27.740 に答える
0

それでも問題が解決しない場合は、私のライブラリをテストすることを検討してください ( 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.
于 2014-12-22T14:54:40.533 に答える