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

标签 php composer-php

我有一个具有以下目录结构的 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/

相关文章:

PHP 从 ODBC 连接中获取最后一个插入 ID

javascript - 从 _ga cookie 检索数据

javascript - 如何扩展字符串限制,同时使用 PHP 将其从 MYSQL 数据库转换为下拉列表中的 Excel

php - 脚本 php artisan clear-compiled 处理返回错误的 pre-update-cmd 事件

amazon-web-services - 云信息 Composer 安装

php - Composer : how to add a dependency without network connection?

php - 处理MYSQL中的NA和空白

php - Composer 工作流是如何工作的?

php - 更新到 Laravel 7 php artisan 后无法正常工作

php - Bootstrap 3 类 ="media-body"导致图像不显示