root - app - controller - model - etc - public - config - vendor - noisemc - image - sound - otherlib composer.json
Załóżmy, ze noisemc/image, noisemc/sound, noisemc/otherlib to osobne repo w GIT
Doszedłem już do tego jak dołączyć je do projektu za pomocą Composera:
{ "require" : { "noisemc/image" : "dev-master", "php" : ">=5.3.2" }, "repositories" : [{ "name" : "noisemc/image", "type" : "git", "url" : "https://noisemc.somegithosting.com/noisemc-image.git" } ] }
Teraz kwestia nierozwiązana jest taka, że chciałbym, żeby w różnych środowiskach zaciągał mi się inny branch z repo, tj np środowisko testowe zaciągałoby dev-test, środowisko produkcyjne dev-master
require-dev composera umożliwia jedynie zaciąganie dodatkowych zależności, a nie alternatywnych
source/dist umożliwia zaczytywanie różnych wersji, ale dist nie akceptuje git jako źródła, musi być np zip
Rozwiązanie na tą chwilę to dwa osobne pliki .json dla composera i w momencie kiedy następuje deployment na test czy produkcję Chef tworzy symlink w zależności od tego na jakim jesteśmy serwerze, np: ln -s composer/composer.master.json composer.json i wtedy wykonuje php composer.phar install
Rozwiązanie to według mnie jest nieładnym hackiem
Czy ktoś ma jakieś sugestie co do sposobu zarządzania takimi współdzielonymi bibliotekami? Do tej pory używaliśmy svn:externals i działa ale chcielibyśmy przesiąść się na GIT/Composer
PS. Chyba pomyliłem działy
