Есть несколько независимых компонентов, построенных на zendframework1, к которым нужно прикрутить composer. Т.е. имеем примерно такую структуру:
app1
|-application
|-library
|-modules
|-tests
|-index.php
app2
|-application
|-library
|-modules
|-tests
|-index.php
app3
|..
vendor
|-Zend
|-ZendX
|-ZFDebug
|-SomePackage
Если установка модулей и library для компонента решается при помощи composer/installers (https://github.com/composer/installers), то как быть с общими (частично) для всех компонентов либами из vendor/? Судя по всему composer не позволяет управлять директорией vendor для нескольких проектов. Как самое простое решение видится такой подход: vendor рассматривать как отдельное приложение со своим composer.json, как описано здесь
http://yiiframework.ru/forum/viewtopic.php?t=19432&start=10 . Но возникают проблемы, например, с тем же composer/installers, который все равно придется устанавливать во всех app* "локально".
Возможно ли как-то сделать vendor/ общим для всех компонентов другим способом.
kaww, я не понимаю, зачем на на нескольких сайтах один и тот же фреймворк(в плане кодовая база).
Можно же сделать наследование, например у нас (а мы юзаем mercurial), реализовано наследование на уровне репозиториев, а имеено есть базовая версия, а есть репозитории потомки, когда нужно что-то починить во всех репах, просто фиксим в основной репе, а потом мержим по мере необходимости с потомками.
Подход основанный на общей кодовой базе плох тем что:
1. Фатальная ошибка в общей кодовой базе и лежат все сайты.
2. Более сложный деплой и поддержка.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
vasa_c
27.07.2015 - 13:43
kaww, нахрена?
chee, нахрена?
_____________
Блог ГО |
Таблица символов Юникода |
Графомания
chee, Вопрос не о способе хранения в vcs. Задача в том, чтобы установить несколько компонентов (с общими зависимостями) на одну машину используя composer. В привычном использовании composer создает vendor/ для каждого компонента (читай сайт, чтобы понятнее), в который по факту качает одни и те же зависимости (не 100% пересечение). Необходимо именно установить зависимости для всех компонентов системы в одну общую директорию. Сейчас так и делается, но без composer'a.
vasa_c, мне кажется в предыдущем сообщении я ответил на вопрос
kaww, сумбурно, сумбурно.
Зачем "необходимо именно", вместо "в привычном использовании"?
vasa_c, потому что! Какой вопрос, такой и ответ.
kaww, зачем так делается? Я не пойму, вам что места на жестком диске жалко?
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
bestxp
27.07.2015 - 16:53
вы не правильно используете менеджер зависимостей
каждый сайт и должен держать свой vendor на край если уж так сильно чешеться
ln -s вам в помощь, но это в корне не верное использование инструмента
bestxp, на самом деле мы только хотим начать использовать его неправильно, сейчас все норм ) . Но вот то, что в таком случае получается три практически идентичных каталога - как-то не очень круто мне кажется.
Invis1ble
27.07.2015 - 22:12
kawwа я в последнее время сторонник подхода "всё своё ношу с собой". Т.е. для каждого "сайта" свой vendor.
Да тот же вариант событий, когда надо будет захардкодить определенную версию определенного пакета для определенного "сайта" поломает всю вашу схему.
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.