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插件,可以将包安装到用户(自定义)定义的文件夹中,您只需将其包含在composer.json中,按照示例操作,如果您有更多问题,请告诉我:)

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

composer自定义目录安装程序

一个composer插件,用于在vendor文件夹中默认composer默认安装路径之外的自定义目录中安装不同类型的composer包。

这不是另一个支持非composer包类型的composer-installer库,即application。。这只是为了增加在供应商文件夹之外安装composer包的灵活性。此软件包仅支持composer软件包类型、

https://getcomposer.org/doc/04-schema.md#type

包的类型。它默认为库。

包类型用于自定义安装逻辑。如果你有一个包需要一些特殊的逻辑,你可以定义一个自定义类型。这可能是一个symfony捆绑包、一个wordpress插件或一个typep3模块。这些类型都是特定于某些项目的,它们需要提供一个能够安装该类型包的安装程序。

如何使用

  • composer.jsonrequire部分中包含composer插件:
"require":{
"php": ">=5.3",
"mnsami/composer-custom-directory-installer": "1.1.*",
"monolog/monolog": "*"
}
  • extra部分中,定义要将软件包安装到的自定义目录:
"extra":{
"installer-paths":{
"./monolog/": ["monolog/monolog"]
}

通过添加installer-paths部分,您告诉composer将monolog包安装在根目录中的monolog文件夹中。

  • 作为添加的新功能,我们在定义下载目录时增加了更大的灵活性,与composer/installers相同,换句话说,您可以在installer-path部分中使用{$vendor}{$name}等变量:
"extra": {
"installer-paths": {
"./customlibs/{$vendor}/db/{$name}": ["doctrine/orm"]
}
}

上述人员将设法将doctrine/orm软件包安装在您项目的根文件夹customlibs下。

备注

此安装程序不支持Composertype: project,因为类型为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.

相关内容

  • 没有找到相关文章

最新更新