Я думаю, у вас есть несколько вариантов здесь:
1.Пути к репозиторию Composer
Как указано @ Loek , вы можете использовать репозиторий path .Это существует для рассмотрения сценариев, которые обычно не попадают в VCS (систему контроля версий, такую как Git) или как файловый артефакт.Согласно документации, вы используете это следующим образом:
{
"repositories": [
{
"type": "path",
"url": "../../packages/my-package",
"options": {
"symlink": true
}
}
],
"require": {
"my/package": "*"
}
}
Самая важная часть, на которую следует обратить внимание, это:
Локальный пакет будет, если возможно, символически связан, в этом случае вывод в консоли будет читать символическую ссылку из ../../packages/my-package.Если символическая ссылка невозможна, пакет будет скопирован.В этом случае консоль будет выводить Mirrored из ../../packages/my-package.
Вместо стратегии по умолчанию для отката вы можете принудительно использовать символическую ссылку с «symlink»: true или зеркалированиес "символической ссылкой": ложная опция .Принудительное зеркалирование может быть полезно при развертывании или генерации пакета из монолитного репозитория.
Этот параметр наиболее важен для меня и является тем, с чем я лично согласился бы.
2.Несколько настроек Composer с переменными среды
Другой вариант - использовать переменную среды COMPOSER
, как описано здесь .Это позволит вам загрузить файл composer.json
, отличный от указанного по умолчанию.Таким образом, у вас может быть два файла, и в зависимости от того, какую переменную среды вы установите, он загрузит соответствующий файл и создаст соответствующий файл блокировки:
- composer.json
- composer-dev.json
Хорошо, так почему же вы захотите это сделать?Ну, из-за того, что вы пытаетесь работать над своим пакетом локально (с активной символической ссылкой), но не хотите, чтобы это происходило в рабочей среде, это может сработать, если первый вариант не сработает.
Следует отметить, что ваша цель всегда должна заключаться в том, чтобы иметь единую конфигурацию, которая работает одинаково в разных средах (например, локальная, промежуточная, производственная).Я понимаю, что вы хотите видеть локальные изменения в вашем репозитории сразу в вашем приложении, и проходить процесс commit / push / pull для каждого изменения просто смешно.
Дополнительное чтение / Ресурсы: