是否可以在 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.json 中,按照示例并告诉我你是否有更多问题 :)
https://github.com/mnsami/composer-custom-directory-installer
作曲家插件,用于在文件夹中默认作曲家默认安装路径之外的自定义目录中安装不同类型的作曲家包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
,换句话说,您可以在您的部分中使用{$vendor}
和之类的变量:{$name}
installer-path
"extra": {
"installer-paths": {
"./customlibs/{$vendor}/db/{$name}": ["doctrine/orm"]
}
}
以上将设法将doctrine/orm
包安装在项目的根文件夹中,在customlibs
.
type: project
此安装程序不支持Composer ,因为具有类型的包project
仅适用于与应用程序外壳(如symfony/framework-standard-edition
)一起使用,其他包需要。
如果仍然有问题,请考虑测试我的库(基于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.