2016-07-15 75 views
1

我创建了一个新的Symfony 3.1.2项目,我开始开发一些我打算在未来重用的新Bundles。所以,我的目录结构是这样的:作曲家更新我的Bundles依赖关系

app/ 
bin/ 
src/ 
    AppBundle/ 
    MyVendorName/ 
     CoolBundle/ 
     Controller/ 
     composer.json 
     ...other files and folders... 
     AwesomeBundle/ 
     Controller/ 
     composer.json 
     ...other files and folders... 
test/ 
var/ 
web/ 
composer.json 
...other files... 

两个CoolBundleAwesomeBundle dependes第三方库(每个composer.json定义)。

现在,有没有办法可以在项目上调用composer update,它还会更新我的包的依赖关系?

回答

1

Y找到了一个使用作曲家存储库的解决方案。

我将我的软件包移动到名为bundles(任意命名)的新文件夹中。这是必要的,因为Symfony默认自动加载src文件夹中的任何Bundle,并且我不知道如果它们自动加载两次(可能有人可以澄清这一点)会发生什么。因此,新的文件夹结构

app/ 
bin/ 
src/ 
    AppBundle/ 
bundles/ 
    MyVendorName/ 
     CoolBundle/ 
     Controller/ 
     composer.json 
     ...other files and folders... 
     AwesomeBundle/ 
     Controller/ 
     composer.json 
     ...other files and folders... 
test/ 
var/ 
web/ 
composer.json 
...other files... 

然后在我的应用程序的composer.json文件(一个在底部)我加

..., 

"repositories": [ 
    { 
     "type": "path", 
     "url": "bundles/MyVendorName/*" 
    } 
], 
"require": { 
    "php": ">=5.5.9", 
    "symfony/symfony": "3.1.*", 
    "myvendorname/coolbundle": "@dev", 
    "myvendorname/awesomebundle": "@dev", 
}, 
... 

现在,当我运行composer update它增加了这个包(只要他们有一个有效的composer.json文件)在我的项目的vendor文件夹中,包括它们的依赖关系,并且它们是自动加载的。

使用符号链接添加本地软件包,因此我在软件包中所做的任何更改都会影响应用程序。欲了解更多信息,请看composer's documentation

相关问题