Intereting Posts
Laravel Передача данных из одного вида в другой вид PHP и FFMPEG – Выполнение интеллектуального преобразования видео Таблица обновления PHP mySQLi Использовать NoSQL в MySQL Drop Down Выберите файл и включите его в ту же страницу Как отключить кнопку заднего браузера после того, как пользователь выйдет из системы и уничтожит сеанс? Curl errno = 6 после примерно одного дня работы «Почему» сценарий ничего не печатает? CakePHP вложенные два запроса Unescape или html-декодирование в Twig (PHP Templating) Как показать другой контент посетителям сайта из определенной страны на PHP? Утвердить несколько условий в одном тесте или разбить на несколько тестов? Как отправить код состояния в PHP, не поддерживая массив имен статусов? php-скрипты получают значение узла, если оно равно заданному значению; изменение значения узла имеет один и тот же родительский узел Понимание «post / redirect / get»

Как указать путь установки Composer?

У меня есть это определение:

{ "repositories": [ { "type": "package", "package": { "name": "symfony/sfGuardPlugin", "version": "4.0.2", "dist": { "url": "http://plugins.symfony-project.org/get/sfGuardPlugin/sfGuardPlugin-4.0.2.tgz", "type": "tar" } } } ], "require": { "symfony/sfGuardPlugin": "4.0.*" } } 

Я использую Symfony 1, и я хотел бы установить их на plugins/sfGuardPlugin/ . Как это указать?

Solutions Collecting From Web of "Как указать путь установки Composer?"

Кажется, что вы можете определить, что vendor dir будет чем-то другим ( plugins в вашем случае):

 { "config": { "vendor-dir": "plugins" } } 

Затем вы можете переименовать имя пакета, чтобы внутри не было уровня, например:

  "package": { "name": "sfGuardPlugin", 

Итак, ваш composer.json должен выглядеть так:

 { "config": { "vendor-dir": "plugins" }, "repositories": [ { "type": "package", "package": { "name": "sfGuardPlugin", "version": "4.0.2", "dist": { "url": "http://plugins.symfony-project.org/get/sfGuardPlugin/sfGuardPlugin-4.0.2.tgz", "type": "tar" } } } ], "require": { "sfGuardPlugin": "4.0.*" } } 

редактировать

Используя эту конфигурацию, вы получите путь (что, конечно, не хорошо для symfony):

плагинов / sfGuardPlugin / sfGuardPlugin-4.0.2 /

Я нашел обходное решение с этим composer.json :

 { "config": { "vendor-dir": "plugins" }, "repositories": [ { "type": "package", "package": { "name": "sfGuardPlugin", "version": "4.0.2", "source": { "url": "http://svn.symfony-project.com/plugins/sfGuardPlugin/", "type": "svn", "reference": "branches/1.3/" } } } ], "require": { "sfGuardPlugin": "4.0.*" } } 

Вы также можете использовать компоновщик / инсталляторы , установщик библиотеки мультиформатных компоновщиков с типом пакета «symfony1-plugin». Вот как выглядит мой файл composer.json, чтобы установить как Symfony 1.4 (в lib / vendor), так и плагины в (/ plugins):

 { "config": { "vendor-dir": "lib/vendor" }, "repositories": { "symfony": { "type": "package", "package": { "name": "symfony/symfony1", "version": "1.4", "dist": { "url": "https://github.com/symfony/symfony1/zipball/1.4", "type": "zip" } } }, "sfResquePlugin" : { "type": "package", "package": { "name": "devpips/sfResquePlugin", "type": "symfony1-plugin", "version": "0.1", "dist": { "url": "https://github.com/devpips/sfResquePlugin/zipball/master", "type": "zip" } } } }, "require": { "composer/installers": "dev-master", "symfony/symfony1": "1.4", "devpips/sfResquePlugin":"0.1" } } 

См. Переменную среды COMPOSER_VENDOR_DIR .

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

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

И, как сказал J0k, в разделе config от composer.json есть каталог vendor-dir

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