【问题标题】:Using Composer when multiple components are in the same vcs repo当多个组件在同一个 vcs 存储库中时使用 Composer
【发布时间】:2013-06-01 12:57:46
【问题描述】:
我有一个 git 存储库,其中包含一些小型和相关的库。由于我使用的平台缺乏适当的依赖管理,处理许多 git repos 很麻烦,因此我的团队决定将它们放入一个 git repo。我现在正在努力通过Composer 安装我们的软件。然而,我不清楚如何在这个 git repo 中注册每个组件,因为我什至不确定每个 repo 是否有可能拥有一个以上的 composer.json 文件。这可能吗?如果有,怎么做?
【问题讨论】:
标签:
php
composer-php
packagist
【解决方案1】:
“每个 repo 是否可以有多个 composer.json 文件。”
没有。
您不能单独注册组件,它们将被注册为一个大依赖项,您必须将它们全部导入其他项目,而不是单独拉取它们。
但是,您可以注册每个组件在目录结构中的位置,以便自动加载器能够正确加载它们。
"autoload": {
"psr-0": {
"Intahwebz\\Component1": "src/Component1",
"Intahwebz\\Component2": "src/Intahwebz/Component2",
"Intahwebz": "src/"
}
}
在包含 Composer 生成的自动加载器后,创建一个 Intahwebz\Component1\TestClass 类型的新类会在正确的目录中找到它。