Я начинающий композитор и я пытаюсь сделать один проект зависит от другого, хотя оба проекта существуют только на моей локальной машине.
Композитор.JSON в мой проект библиотеки (проект) является:
{
"name" : "project/util",
"type" : "library"
}
Я инициализировать Git в основной папке проекта.
Мой композитор.JSON в проекте в зависимости от первого (Проект Б):
{
"repositories": [
{
"name" : "util",
"type" : "git",
"url" : "/d/workspaces/util"
}
],
"require": {
"project/util" : "*"
},
}
Когда я запускаю `композитор установить из Проект Б, я получаю следующую ошибку:
[к RuntimeException] не клон , не может читать пакеты из нее фатальная ошибка: репозиторий '' не существует
Я предполагаю, что-то не так с URL-адрес репозитория, но я не знаю, что еще там пишут.
Местные пакета автозагрузки через Composer (без packagist каждый раз, когда вы меняете).
Есть много способов сделать это, я опишу 2 из них:
Во всех случаях у нас есть 2 основные стороны:
Способ 1: (прямого пространства)
Открытие основного проекта `композитор.JSON-файл и загрузки пакет имен, используя любой метод (ПСР-4, ПСР-0, ...).
пример:
если в композитора.JSON для локального пакета мы имеем:
"autoload": {
"psr-4": {
“Local\\Pack\\": "library"
}
},
"autoload-dev": {
"psr-4": {
"Local\\Pack\\Tests\\": "tests"
}
},
затем в композитора.JSON для основной проект, который мы должны иметь:
"autoload": {
"psr-4": {
"Mahmoudz\\Project\\": "src",
"Local\\Pack\\": "../path/to/local/pack/library” << referencing the other local package
}
},
"autoload-dev": {
"psr-4": {
"Mahmoudz\\Project\\Tests\\": "tests"
}
},
Преимущества:
Способ 2: (локальный репозиторий)
Скачать локальный пакет из локального репозитория.
локальный пакет:
"имя" и: "с/пакета-наименование поставщика-наименование и",
на "Автозагрузка" С: { ... // вы можете использовать любой метод вы предпочитаете, но убедитесь, что он загружается корректно
на "минимум-стабильность и": на "Дева" и
дамп-Автозагрузка композитор
основной проект:
на "хранилища" и: [ { на "типа„: фильм "ВКС" и, "в адрес" и: " По - /полный/путь/к/в/местный/пакет/пакет-именем" } ], на "требуют" с: { "с/пакета-наименование поставщика-именем": "У Дев-Мастер"и },
Обратите внимание: когда вы вносите изменения в локальный пакет (не продавец), вы должны коммит в git'е, то вы можете композитор обновление основного проекта, он будет получать последнюю копию репозитория в Главный каталог поставщиков проекта.
Преимущества:
Я думаю, что вы'вэ только что синтаксис неправильный. Этот тип должен просто быть VCS, а затем фигуры композитора, что типа ВКС это.
Поэтому в проекте Б, вход для хранилищ должны быть:
"repositories": [
{
"type": "vcs",
"url" : "/d/workspaces/util"
}
],
Вы Don'т должны назвать то, что библиотека доступна в `/д/рабочих/утиль. Композитор будет сканировать композитора.JSON-файл в этот каталог и знаю, что название проекта есть, и использовать проект из этого каталога В предпочтение версии указаны на packagist или другого репозитория.
Я нашел этот учебник очень полезен: https://johannespichler.com/developing-composer-packages-locally/ когда я был возникают проблемы с местным производством упаковки
Примечание условие ссылка
позволяет папку поставщика, которые должны быть символическая ссылка, то значит, вам больше не нужно композитор
обновить ' каждый раз, когда вы хотите, чтобы увидеть изменения
"options": {
"symlink": true
}