Как установить мою локальную файловую систему в качестве хранилища композитора для моей среды разработки?

Я обычно использую Java для создания ИТ-проектов с Maven в качестве Dependency Management (DM). По требованиям я должен внедрить DM в компании, в которой я работаю в некоторых проектах, выполненных на PHP. Одним из требований является то, что они не хотят использовать какие-либо фреймворки, такие как Symfony, Laravel, Zend и т. Д.

Я исследовал некоторые DM для PHP и обнаружил, что лучшим вариантом является Composer. Я работаю над многослойными проектами, что-то вроде этого:

  • ядро
  • Сервисы
  • клиент
  • сайт

Когда я начал создавать эту структуру, первой проблемой, с которой я столкнулся, было то, что Composer не получает рекурсивные зависимости, по этой причине я реализовал Satis как репозиторий пакетов. Я использовал Satis, а не Packagist, потому что проекты являются частными проектами, в которых SVN используется как система контроля версий, а Packagist использовал GitHub для получения исходного кода проектов.

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

  1. Например, если я изменю ядро проект, чтобы отразить эти изменения, я должен сделать коммит в SVN, после этого обновить Satis Repository и, наконец, обновить проект, где я использую ядро. По этой причине я попытался найти способ указать зависимости моей файловой системе, чтобы избежать фиксации каждый раз, и просто фиксировать, когда функция, ошибка, исправление завершены.

Мой сыт.json выглядит так

{
"name": "My Repository",
"homepage": "https://www.myrepository.com/",
"repositories": [
{ "type": "vcs", "url": "file:///C:/core/branches/core/" },
{ "type": "vcs", "url": "file:///C:/services/branches/services/" }
],
"require-all": true
}

Спасибо за вашу помощь.

0

Решение

Поддерживаются локальные ссылки, просто указав путь к файлу.

Я не знаю, как это работает в Windows, но в системах на основе Unix / Linux работает следующее:

{
"repositories": [
{ "type": "vcs", "url": "/path/to/git/repo" }
]
}

Рекомендации:

2

Другие решения

Satis не принимает файловые URL для захвата, но вы можете указать на SVN-репозиторий прямо в корневом проекте. composer.json (потому что, как вы уже узнали, Composer не разрешает эти хранилища рекурсивно).

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

1

По вопросам рекламы [email protected]