Композитор - использование локального репозитория

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

Композитор.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 основные стороны:

  • интернет пакет (код, который мы не хотим публиковать на packagist чтобы автоматически подгрузить ее в наш проект композитора).
  • в основной проект (базовый код, который должен использовать локальный код пакета, может быть другой пакет и или проекта).

Способ 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”                   
Комментарии (7)

Я думаю, что вы'вэ только что синтаксис неправильный. Этот тип должен просто быть VCS, а затем фигуры композитора, что типа ВКС это.

Поэтому в проекте Б, вход для хранилищ должны быть:

"repositories": [
    {
        "type": "vcs",
        "url" : "/d/workspaces/util"
    }
],

Вы Don'т должны назвать то, что библиотека доступна в `/д/рабочих/утиль. Композитор будет сканировать композитора.JSON-файл в этот каталог и знаю, что название проекта есть, и использовать проект из этого каталога В предпочтение версии указаны на packagist или другого репозитория.

Комментарии (4)

В дополнение к Danack'решением с: изменением пути от /Д/ К D:/ работал для меня.

Как это:

"repositories": [
    {
        "type": "vcs",
        "url" : "d:/workspaces/util"
    }
],
Комментарии (0)

Я нашел этот учебник очень полезен: https://johannespichler.com/developing-composer-packages-locally/ когда я был возникают проблемы с местным производством упаковки

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

"options": {
        "symlink": true
      }
Комментарии (0)