我看到已经有一个问题,但它没有回答这个问题
如何在/src
目录中安装捆绑包?
我想这样做的原因是为了开发和部署,所以
- 我不必将 Symfony 的基本代码签入我的 subversion repo
- 我可以使用 Composer 来部署
查看 Composer 文档,我确实遇到了这个:
供应商目录:默认为供应商。如果需要,您可以将依赖项安装到不同的目录中。
我可以将其设置为 Bundle 级别吗?或者这是整体安装?
我看到已经有一个问题,但它没有回答这个问题
如何在/src
目录中安装捆绑包?
我想这样做的原因是为了开发和部署,所以
查看 Composer 文档,我确实遇到了这个:
供应商目录:默认为供应商。如果需要,您可以将依赖项安装到不同的目录中。
我可以将其设置为 Bundle 级别吗?或者这是整体安装?
{
"extra": {
"installer-paths": {
"sites/example.com/modules/{$name}": ["vendor/package"]
}
}
}
我已经实现了这个作曲家插件来将包安装到用户(自定义)定义的文件夹中,您可以将其包含在您的 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
)一起使用,其他包需要。
如果您发现 composer 的自定义安装程序过于复杂或死板,并且您可以计划将部署到哪些类型的系统,您可以考虑使用安装后脚本。
这是一个示例,它从安装在供应商下的软件包创建符号链接到可能预期的位置:
"scripts": {
"post-install-cmd": [
"test -d vendor/foo/bar && ln -s ../vendor/foo/bar lib/bar"
]
}
这将创建一个lib/bar/
指向的符号链接vendor/foo/bar/
。