Symfony2.3 - Как добавить пользовательского поставщика
У меня есть проект Symfony 2.3, и я хотел бы использовать специального поставщика. Я знаю, что в версиях Symfony 2.1 и 2.2 вы можете объявлять поставщиков в файле deps
.
Но как я могу объявить пользовательского поставщика в проекте Symfony 2.3? Есть файл composer.json
, но я действительно не понимаю, как он работает.
РЕДАКТИРОВАТЬ:
Пользовательский код поставщика находится на github.
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, вам придется выбрать собственную стратегию автоматической загрузки пакета.