Использовать композитор для установки пакета в пользовательском каталоге

Я вижу, что есть уже вопрос, но он не ответил на вопрос

  • Как установить пакет композитора в каталог / src?

Как установить пакет в каталог /src ?

Причина, по которой я хотел бы сделать это, – это разработка и развертывание, поэтому

  • Мне не нужно проверять базовый код Symphony в моем реестре subversion
  • Я мог бы использовать Composer для развертывания

Глядя на документы Composer еще несколько, я столкнулся с этим:

  • http://getcomposer.org/doc/04-schema.md#config

vendor-dir : По умолчанию поставщик. Вы можете установить зависимости в другой каталог, если хотите.

Могу ли я установить это на уровне Bundle? или это для общей установки?

  • https://github.com/composer/composer/blob/master/res/composer-schema.json

Solutions Collecting From Web of "Использовать композитор для установки пакета в пользовательском каталоге"

Я знаю, что это поздно, но если кто-то ищет ответ, который я старательно (часы и часы) нашел: vendor-dir

В документации говорится:

Установив этот var, вы можете заставить компоновщика установить зависимости в каталог, отличный от поставщика

Пример:

 { "config": { "vendor-dir": "website/password/vendor/" } } 

Из этого документа и этого документа

Опять же, надеемся спасти кого-нибудь еще пару часов.

 { "extra": { "installer-paths": { "sites/example.com/modules/{$name}": ["vendor/package"] } } } 

Прочитайте больше.

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

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

 "scripts": { "post-install-cmd": [ "test -d vendor/foo/bar && ln -s ../vendor/foo/bar lib/bar" ] } 

Это создаст символическую ссылку в lib/bar/ указывая на vendor/foo/bar/ .

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

https://github.com/mnsami/composer-custom-directory-installer

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

Плагин композитора для установки различных типов композиционных пакетов в пользовательских каталогах за пределами стандартного пути установки по умолчанию композитора, который находится в папке vendor .

Это не другая библиотека компоновщика composer-installer для поддержки типов пакетов, отличных от композитора, т.е. application .. и т. Д. Это только для того, чтобы добавить гибкость установки композиционных пакетов за пределы папки поставщика. Этот пакет поддерживает только типы пакетов composer ,

https://getcomposer.org/doc/04-schema.md#type

Тип пакета. По умолчанию используется библиотека.

Типы пакетов используются для пользовательской логики установки. Если у вас есть пакет, который нуждается в специальной логике, вы можете определить нестандартный тип. Это может быть набор symfony, плагин wordpress или typo3-модуль. Эти типы будут специфичны для определенных проектов, и им необходимо будет предоставить установщик, способный устанавливать пакеты такого типа.

Как использовать

  • Включите плагин композитора в свой composer.json require section ::
 "require":{ "php": ">=5.3", "mnsami/composer-custom-directory-installer": "1.1.*", "monolog/monolog": "*" } 
  • В extra разделе укажите настраиваемый каталог, который вы хотите установить, в ::
  "extra":{ "installer-paths":{ "./monolog/": ["monolog/monolog"] } 

добавив часть установочных installer-paths , вы сообщаете композитору установить пакет monolog внутри папки monolog в корневом каталоге.

  • В качестве добавленной новой функции мы добавили большую гибкость при определении каталога загрузки так же, как и composer/installers , другими словами, вы можете использовать переменные, такие как {$vendor} и {$name} в вашем разделе installer-path :
 "extra": { "installer-paths": { "./customlibs/{$vendor}/db/{$name}": ["doctrine/orm"] } } 

вышесказанное сможет установить пакет doctrine/orm в корневой папке вашего проекта под customlibs .

Заметка

type: project композитора type: project не поддерживается в этом установщике, поскольку пакеты с project типа имеют смысл использовать только с оболочками приложений, такими как symfony/framework-standard-edition , которые потребуются другому пакету.