2016-07-15 4 views
1

Я создал новый проект Symfony 3.1.2, где я начал разрабатывать новые пакеты, которые планирую повторно использовать в будущем. Так что моя структура каталогов выглядит так:Composer update my Bundles dependencies

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... 

Оба CoolBundle и AwesomeBundle dependes на сторонних библиотеках (определенный на каждый composer.json).

Теперь, есть способ, которым я могу позвонить composer update по проекту, и он также обновит зависимости моих пакетов?

ответ

1

Я нашел решение, используя репозитории композитора.

Я переместил свои связки в новую папку, называемую пучками (сущ.). Это необходимо, так как Symfony автоматически загружает любой пакет в папку src, и я не знаю, что произойдет, если они будут автоматически загружены (возможно, кто-то может это прояснить). Таким образом, новая структура папок

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... 

Тогда на я добавил

..., 

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

Теперь composer.json файл моего приложения (тот, в нижней части), когда я бегу composer update добавляет эти пакеты (до тех пор, как они есть действительный файл composer.json) в папке vendor моего проекта, включая их зависимости, и они автоматически загружаются.

Местные связки добавляются с помощью символических ссылок, поэтому любые изменения, которые я делаю в связках, влияют на приложение. Для получения дополнительной информации см. composer's documentation.