【发布时间】:2014-03-17 23:43:56
【问题描述】:
我在这里有一个项目,它是一个大型 Symfony2 应用程序,我希望将 git 子模块引入我们在内部构建的组件中。这里的问题是每个组件还需要作曲家包才能正常运行,现在我有 symfony2 应用程序的作曲家包和组件所需的作曲家包,我不确定如何在此处处理/设置这些依赖项。
目前我正在为我们添加的每个组件(git 子模块)手动运行“composer install”,这意味着每个组件都有自己的“vendor”文件夹,这远非理想,所以我来 Stack获得关于如何保持这些“symfony 作曲家依赖”和“组件作曲家依赖”易于维护的好建议。
我不需要确保 symfony2 应用程序的 deps 版本与组件 deps 同步,我只需要使其简单且可维护,而无需对我们设置的每个 git 子模块运行“composer update”。
谢谢!
编辑
我现在使用 composer 的 repositories 键来定义我公司私有 github 存储库的 URL。我可以提取一个单独的私人回购,我们称之为回购 A。但是,当我添加回购 B 并使回购 A require 回购 B 时,它无法正确解决。
repo A(用户报告组件)的composer.json:https://gist.github.com/dragoonis/6ea92e062762c516baea
Repo B(数据库组件)的 Composer.json:https://gist.github.com/dragoonis/e54b47b75a79b82ebaea
出现以下错误信息:https://gist.github.com/dragoonis/d79cd2c2dd5cc50bcd2a
opinurate/database-component 包确实存在,因为它是respositories 键中定义的存储库之一。
结论
这里的最终解决方案是使用 Satis 设置您自己的私有版本的 'packagist' 将与 packagist 一起使用。
我在“http://packages.mydomain.com”设置了 Satis,并在我的主应用程序 composer.json 文件中添加了一个“存储库”键到该 URL。现在,在评估包名称时,它将使用您自己的自定义 satis 服务器来为您提供 git URL。
【问题讨论】:
标签: php git symfony composer-php