Composer——如何使存储库的子组件可安装


Composer - how to make sub-components of a repository installable?

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

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

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

我要做的是将每个组件作为一个包提交到https://packagist.org/packages/submit看起来,packagist只想要一个存储库的根目录,而不能用来提交嵌套的文件夹。

而且,到目前为止,我没有在官方文档中注明任何关于实现我想要的东西的东西。有什么办法吗?如果不是,要重新组织什么使之成为可能?

如果每个组件都是独立的,则每个组件都需要自己的编写器。json和它自己的Packagist条目。Zend Framework就是这样做的。Zend-View、Zend-Pdf等都是独立的软件包,有自己的文件。如果你看一下Zend Framework示例应用,你会注意到它引入了几个自己的独立包。

当然,每个组件的包都是痛苦的。您可以考虑捆绑,这是一种折衷的技术。您要考虑所有包,然后将它们分组为具有自己的编写器的逻辑相关组件。json和Packagist条目。Symfony的操作方式更像这样。例如,控制台是与控制台操作(显然)相关的一组部件。即使我只想要Console'Table在我的消费者中,我也必须把它们都拉进来。

作为代码提供者,您为您的使用者决定最佳的打包安排。这是主观判断,可能会随着时间的推移而改变。