Composer - 如何使存储库的子组件可以安装?

时间:2015-09-29 03:41:28

标签: php composer-php

我有一个GitHub存储库,它具有以下目录结构:

config
app
vendor
 - Framework
    - Component1
    - Component2
    - Component3
    - Component4

所以,我有一个框架,并希望通过composer使所有组件都可以安装(就像Symfony那样),因为这些组件完全相互分离,也可以作为独立的库使用。框架本身遵循PSR-0。

我要做的就是在https://packagist.org/packages/submit上将每个组件作为一个包提交 似乎,packagist只想要存储库的根目录,并且无法用于提交嵌套文件夹。

另外,到目前为止,我没有注意到在官方文档中实现我想要的东西。有什么办法吗?如果没有,重新组织什么使它成为可能?

1 个答案:

答案 0 :(得分:1)

如果每个组件都是独立的,则每个组件都需要自己的composer.json和自己的Packagist条目。 Zend Framework does it this way. Zend-View,Zend-Pdf等都是具有自己文件的独立包。如果您查看Zend Framework示例应用程序,那么您会注意到它会引入几个独立的软件包。

当然,每个组件的包都会变得很痛苦。您可以考虑捆绑,这是一种折衷技术。您考虑所有包,然后使用自己的composer.json和Packagist条目将它们分组为逻辑相关组件。 Symfony更像是这样运作。例如,控制台是一组与(显然)控制台操作相关的部件。即使我只想在我的消费者中使用Console\Table,我也必须全力以赴。

作为代码提供商,您可以为消费者决定最佳的包装安排。这是一个判断电话,它可能会随着时间而改变。