[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Composer. Общий vendor для всех сайтов
kaww
Есть несколько независимых компонентов, построенных на zendframework1, к которым нужно прикрутить composer. Т.е. имеем примерно такую структуру:
Structure
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/ общим для всех компонентов другим способом.
chee
kaww, я не понимаю, зачем на на нескольких сайтах один и тот же фреймворк(в плане кодовая база).

Можно же сделать наследование, например у нас (а мы юзаем mercurial), реализовано наследование на уровне репозиториев, а имеено есть базовая версия, а есть репозитории потомки, когда нужно что-то починить во всех репах, просто фиксим в основной репе, а потом мержим по мере необходимости с потомками.

Подход основанный на общей кодовой базе плох тем что:

1. Фатальная ошибка в общей кодовой базе и лежат все сайты.
2. Более сложный деплой и поддержка.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
vasa_c
kaww, нахрена?

chee, нахрена?


_____________
Блог ГО | Таблица символов Юникода | Графомания
kaww
chee, Вопрос не о способе хранения в vcs. Задача в том, чтобы установить несколько компонентов (с общими зависимостями) на одну машину используя composer. В привычном использовании composer создает vendor/ для каждого компонента (читай сайт, чтобы понятнее), в который по факту качает одни и те же зависимости (не 100% пересечение). Необходимо именно установить зависимости для всех компонентов системы в одну общую директорию. Сейчас так и делается, но без composer'a.
kaww
vasa_c, мне кажется в предыдущем сообщении я ответил на вопрос
Guest
kaww, сумбурно, сумбурно.

Зачем "необходимо именно", вместо "в привычном использовании"?
chee
vasa_c, потому что! Какой вопрос, такой и ответ.

kaww, зачем так делается? Я не пойму, вам что места на жестком диске жалко?

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
bestxp
вы не правильно используете менеджер зависимостей
каждый сайт и должен держать свой vendor на край если уж так сильно чешеться
ln -s вам в помощь, но это в корне не верное использование инструмента
kaww
bestxp, на самом деле мы только хотим начать использовать его неправильно, сейчас все норм ) . Но вот то, что в таком случае получается три практически идентичных каталога - как-то не очень круто мне кажется.
Invis1ble
kaww
а я в последнее время сторонник подхода "всё своё ношу с собой". Т.е. для каждого "сайта" свой vendor.
Да тот же вариант событий, когда надо будет захардкодить определенную версию определенного пакета для определенного "сайта" поломает всю вашу схему.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.