簡體   English   中英

Composer中的自定義包安裝路徑?

[英]Custom package installation path in Composer?

是否可以指定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.json中,按照示例告訴我你是否還有更多問題:)

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

作曲家定制目錄的安裝程序

一個composer插件,用於在vendor文件夾中的默認編寫器默認安裝路徑之外的自定義目錄中安裝不同類型的編寫器包。

這不是另一個用於支持非作曲家包類型的composer-installer庫,即application等。這只是為了增加在供應商文件夾之外安裝作曲家包的靈活性。 這個包只支持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部分,您告訴作曲家在根目錄中的monolog文件夾中安裝monolog包。

  • 作為一項新增功能,我們在定義下載目錄方面增加了更多靈活性,就像編輯器composer/installers ,換句話說,您可以在installer-path部分中使用{$vendor}{$name}等變量:
"extra": {
    "installer-paths": {
        "./customlibs/{$vendor}/db/{$name}": ["doctrine/orm"]
    }
}

以上將設法在customlibs下的項目的根文件夾中安裝doctrine/orm包。

注意

Composer type: project此安裝程序不支持該type: project ,因為類型為project包只能與symfony/framework-standard-edition等應用程序shell一起使用,這是另一個包所需要的。

如果仍然考慮測試我的庫(基於mina.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.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM