PHP Разработка пакета composer под вендором основного проекта

1

У меня есть основной проект php, для которого требуется разработанный мной php-компонент, который я намерен повторно использовать в других проектах, компонент находится в главном каталоге поставщика проекта. Однако, нажав на компонент Github, перейдите в основной проект, выполнение обновления для композитора занимает много времени. Чтобы ускорить разработку компонента, есть ли способ включить проект локального компонента в основной проект?

  • 0
    Если composer update занимает много времени, то я считаю, что ваше интернет-соединение слишком медленное. Обновление занимает не более 5 минут.
  • 0
    5 минут - это слишком много, даже 20 секунд, я могу часто менять
Показать ещё 1 комментарий
Теги:
github
composer-php

2 ответа

2
Лучший ответ

Вот как я делаю разработку локального композитора.

  1. Создайте папку vendor-repo рядом с папкой поставщика.
  2. Создайте каталог для поставщика и имени проекта, например vendor-repo/vendorname/packagename
  3. Создайте репозиторий git в папке packagename и создайте свой композитный пакет в комплекте с composer.json и т.д.
  4. Добавьте свой локальный репозиторий в основной файл composer.json (тот, который требует ваш пакет). Вы также можете отключить репозиторий packagist, добавив "packagist": false в соответствии с приведенным ниже примером. Это ускорит процесс и станет хорошей идеей, если вы не используете какие-либо пакеты из packagist.

"repositories": [ { "type": "path", "url": "vendor-repo/vendorname/packagename" }, { "packagist": false } ]

Затем, когда вы запустите composer update он получит ваш пакет из вашего локального репо, а не должен получить его от GitHub.

  • 0
    спасибо, да «путь» был тем, что мне было нужно, я углублюсь в документацию для более продвинутых вещей.
  • 0
    Это отличный способ.
Показать ещё 6 комментариев
0

Вы можете добавить библиотеку непосредственно в папку поставщика, зарегистрировать источники, используя autoload psr-0 или psr-4, сбросить классы автозагрузки и создать репозиторий git внутри папки.

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

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

  • 0
    это идея Я просто хотел бы сослаться на пакет, как я делаю в C # в Visual Studio. Я попытаюсь просто запустить обновление composer один раз, а затем удалить запись, относящуюся к пакету, в composer.json, чтобы он оставил ее при дальнейших обновлениях.
  • 0
    Вы также можете добавить эту библиотеку из папки vendor. Например, папка local_libs, поэтому исходные файлы библиотеки не будут удалены после успешного обновления композитора. Не забудьте изменить путь к источникам автозагрузки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню