我有一个具有以下目录结构的 GitHub 存储库:
config
app
vendor
- Framework
- Component1
- Component2
- Component3
- Component4
因此,我有一个框架,并希望使其所有组件都可以通过 composer 安装(就像 Symfony 所做的那样),因为这些组件彼此完全分离并且也可以用作独立库。框架本身遵循 PSR-0。
我要做的是将每个组件作为一个包提交到 https://packagist.org/packages/submit 上 看起来,packagist 只想要存储库的根目录,不能用于提交嵌套文件夹。
此外,到目前为止,我还没有在官方文档中注意到任何有关实现我想要的东西的内容。有什么办法吗?如果不是,要重新组织什么以使其成为可能?
最佳答案
如果每个组件都是独立的,则每个组件都需要自己的 composer.json 和自己的 Packagist 条目。 Zend Framework does it this way. Zend-View、Zend-Pdf等都是独立的包,有自己的文件。如果您查看 Zend Framework 示例应用程序,您会注意到它引入了几个自己的独立包。
当然,为每个组件打包可能会很痛苦。您可能会考虑捆绑,这是一种折衷技术。您考虑所有的包,然后将它们分组为逻辑相关的组件,并使用它们自己的 composer.json 和 Packagist 条目。 Symfony更像这样操作。例如,控制台是一组与(显然)控制台操作相关的部件。即使我只想在我的消费者中使用 Console\Table
,我也必须将其全部拉入。
作为代码提供者,您可以为您的消费者决定最佳的包装安排。这是一个判断电话,它可能会随着时间而改变。
关于php - Composer - 如何使存储库的子组件可安装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32835309/