Использование Composer, когда несколько компонентов находятся в одном репозитории vcs

У меня есть репозиторий Git, который содержит несколько небольших и связанных библиотек. Поскольку на платформе, с которой я работаю, отсутствует надлежащее управление зависимостями, работа со многими Git-репозиториями является проблемой, поэтому моя команда решила поместить их в одно GIT-репо. Сейчас я работаю над тем, чтобы наше программное обеспечение можно было установить через Composer. Однако мне не ясно, как зарегистрировать каждый компонент в этом git-репо, так как я даже не уверен, что возможно иметь более одного файла composer.json на репо. Это возможно? И если да, то как?

1 ответ

Решение

"Возможно ли иметь более одного файла composer.json на репо".

Нет.

Вы не можете зарегистрировать компоненты по отдельности, они будут зарегистрированы как одна большая зависимость, и вам придется импортировать их все в другие проекты, вместо того, чтобы иметь возможность извлекать их по отдельности.

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

"autoload": {
    "psr-0": {
        "Intahwebz\\Component1": "src/Component1",
        "Intahwebz\\Component2": "src/Intahwebz/Component2",
        "Intahwebz": "src/"
    }
}

После включения сгенерированного Composer автозагрузчика, создание нового класса типа Intahwebz\Component1\TestClass найдет его в правильном каталоге.

Другие вопросы по тегам