Symfony2.3 - Как добавить пользовательского поставщика


У меня есть проект Symfony 2.3, и я хотел бы использовать специального поставщика. Я знаю, что в версиях Symfony 2.1 и 2.2 вы можете объявлять поставщиков в файле deps.

Но как я могу объявить пользовательского поставщика в проекте Symfony 2.3? Есть файл composer.json, но я действительно не понимаю, как он работает.

РЕДАКТИРОВАТЬ:
Пользовательский код поставщика находится на github.

Author: Charles, 2013-07-03

1 answers

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

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

Упаковщик

Если пользовательский поставщик успешно отправил их упаковщику, то ваша жизнь проста, вы можете найдите его и запишите имя (в формате <vendor>/<package>.

Откройте свой файл composer.json и в конце инструкции "require": {} добавьте своего поставщика. Например, если наш пакет был вызван peterjmit/awesome-package

// ...
"require": {
  // ...
  "peterjmit/awesome-package": "*"
},
// ...

Вы можете заменить * номером версии, если хотите. Как только вы это сделаете, вы можете запустить команду composer update, чтобы загрузить свой новый пакет. Если вы хотите только обновить новый пакет, вы можете использовать composer update peterjmit/awesome-package.

Благодаря автозагрузчику композитора и PSR-0 стандарт, классы из пакета загружаются автоматически, поэтому вам не нужно делать никакой другой "сантехники".

Хранилище VCS

Если пользовательский поставщик не входит в состав packagist, но у него есть файл composer.json, вы можете указать пользовательский репозиторий для composer. Вам нужно иметь тот же оператор require, что и раньше, но вам нужно добавить новый оператор в composer.json

// ...
"require": {
  // ...
  "peterjmit/awesome-package": "*"
},
"repositories": [
  {
    "type": "vcs",
    "url": "[email protected]:peterjmit/awesome-package.git"
  },
  // .. etc.

Если в пакете нет composer.json, то вы всегда можете разветвить его и добавить свой собственный. Но если код не соответствует PSR-0, вам придется выбрать собственную стратегию автоматической загрузки пакета.

 5
Author: Pete Mitchell, 2013-07-03 14:17:13