【发布时间】:2015-09-20 11:28:24
【问题描述】:
我的 Symfony2 (GregCMS) 项目包含几个可以单独使用的 Bundle。 我创建了一个由我的项目启动的裸本地存储库 (RepoGregCMS)。
我真的需要将我的包嵌入到单个 Symfony 项目中。此外,我不能使用 github:repo 必须远离互联网。
我希望能够使用来自任何其他项目的我的项目包。这些捆绑包用于设置新项目,其中包含一些客户愿意付费的功能。
所以我在 GregCMS/src/GregCMS/CoreBundle 以及 GregCMS/src/GregCMS/WidgetsBundle 中创建了一个 composer.json 文件。
例如:
{
"name" : "gregcms/corebundle",
"description" : "Greg CMS core bundle",
"type" : "symfony-bundle",
"authors" : [{
"name" : "Greg",
"email" : "author@mail.com"
}],
"keywords" : [
"cms core bundle"
],
"license" : [
"MIT"
],
"require" : {
},
"autoload" : {
"psr-0" : {
"GregCMS\\CoreBundle" : ""
}
},
"target-dir" : "GregCMS/CoreBundle",
"repositories" : [{
}],
"extra" : {
"branch-alias" : {
"dev-master" : "1.0-dev"
}
}
}
现在,我想做的是创建一个需要我的 CoreBundle 的新 Symfony 项目。
我创建了项目,然后在其 composer.json 中添加了以下行:
...
"gregcms/corebundle" : "dev-master"
...
我还添加了存储库路径:
...
"repositories": [
{
"type": "git",
"url": "../RepoGregCMS"
}
],
...
这么说,我尝试安装新创建的依赖,但我终于得到了这个错误:
[Composer\Repository\InvalidRepositoryException]
No valid composer.json was found in any branch or tag of ../RepoAubergineCMS, could not load a
package from it.
我认为我的存储库已经启动,因此不包含文件或目录这一事实让作曲家发疯了。
我还尝试指向我的存储库 (GregCMS) 的本地分支,并且几乎可以正常工作。我有以下错误:
The requested package gregcms/corebundle could not be found in any version, there may be a typo in the package name
如何使用 composer 让我的 Bundle 可用于其他项目?这甚至是尝试指向裸存储库的好习惯吗? 我想说的是,我正在尝试做的事情与 Sensio 对 symfony 所做的事情相同:在一个项目/repo 中创建多个组件,并能够单独或同时使用它们。
我有点迷路了。感谢您的帮助
编辑:
我成功地创建了一个裸存储库并将其用作指定的 CVS。但我仍然收到有关未找到包的错误。我不知道为什么我会遇到这个错误。配置文件与其他文件相同。我错过了一些东西,但不知道是什么。
【问题讨论】:
标签: git symfony composer-php bundle