Как я могу установить пакет композитора в каталог /src?

Как мне изменить мой composer.json, чтобы он устанавливался непосредственно в src-dir (Symfony/src)?

{
"name": "acme/example-bundle",
"type": "symfony-bundle",
"license": "MIT",
"require": {
    "php": ">=5.3.2",
    "symfony/framework-bundle": "2.1.*"
},
"suggest": {
    "doctrine/doctrine-bundle": "*"
},
"autoload": {
    "psr-0": { "Acme": "src/" }
},
"target-dir": "../../src/Acme/ExampleBundle"

}


person bodokaiser    schedule 19.06.2012    source источник
comment
Я полностью согласен с принятым ответом. Однако бывают ситуации, когда у вас нет выбора. Какие варианты у меня есть, чтобы установить зависимость в src вместо vendor?   -  person BetaRide    schedule 26.09.2012
comment
Вы когда-нибудь заставляли это работать? У меня такая же проблема, и я хотел бы знать, нашли ли вы решение для размещения Bundle в каталоге src/   -  person Phill Pafford    schedule 10.11.2012


Ответы (2)


на самом деле не рекомендуется устанавливать пакеты поставщиков в каталог src, потому что пакеты поставщиков не следует редактировать, а каталог src предназначен для кода, который редактируется в процессе разработки.

Одна из причин, которая приходит мне на ум, заключается в том, что вы хотите изменить эти пакеты. если дело в этом, вам лучше отказаться от использования подмодулей git, потому что у композитора есть только односторонний поток, то есть изменения могут исходить только из источника пакета поставщика, и нет восходящего потока к источнику.

Я использую подмодули git для пакетов в своих проектах, которые не являются специфическими для проекта и, следовательно, находятся в своем собственном репозитории git, но активно разрабатываются в ходе проекта.

person room13    schedule 19.06.2012
comment
Хорошо, вы правы с этим на самом деле. Спасибо за совет!# - person bodokaiser; 19.06.2012
comment
Это на самом деле неправильно. Если вы укажете --prefer-source, композитор попытается клонировать репозитории git и проверить репозитории svn для ваших поставщиков, чтобы вы могли разрабатывать и фиксировать в этих репозиториях. - person naderman; 19.06.2012
comment
о... не знал. У меня была проблема со старым скриптом поставщиков в sf 2.0, из-за которого репозитории проверялись как доступные только для чтения, а фиксация / отправка были невозможны. Не могли бы вы опубликовать пример того, как я могу включить репозиторий github, чтобы я мог вернуться? спасибо - person room13; 20.06.2012
comment
Просто запустите php composer.phar install --prefer-source и он сделает это за вас. - person naderman; 26.06.2012
comment
Я хотел бы запустить команду composer require comapny/bundle:1.* и установить пакет таким образом для развертывания, предложения? - person Phill Pafford; 10.11.2012
comment
Я понимаю, что вы советуете лучшие практики, как делать такие вещи. Тем не менее, вы также должны попытаться дать фактический ответ на вопрос, потому что он может быть применим к другим пользователям в аналогичном, но немного другом сценарии и при этом не представляет какой-либо угрозы безопасности. - person Charles Sprayberry; 14.05.2013

Каталог src проекта PHP/Symfony обычно используется только для кода этого проекта. Код, который вы устанавливаете как зависимость, попадает в каталог поставщика.

Это упрощает отслеживание того, какой код является частью самого проекта, а какой хранится в отдельном репозитории.

Таким образом, вы не должны устанавливать пакет из отдельного репозитория в свой каталог src. Пакеты в Symfony прекрасно работают, если они расположены в каталоге поставщика, как и многие из основных пакетов фреймворка.

person naderman    schedule 19.06.2012