Я создал пакет. в комплекте я создаю две таблицы в базе данных. это следует за моим композитором.json.
{
"name": "xxxx/xxx-designer",
"description": "XXXX",
"license": "MIT",
"homepage": "https://github.com/giturl",
"autoload": {
"psr-0": {
"": "src/"
}
},
"authors": [
{
"name": "xxxx",
"email": "[email protected]"
}
],
"minimum-stability": "dev",
"require": {
"php": ">=5.3.0",
},
"scripts": {
"post-install-cmd": [
"Acme\\Bundle\\DemoBundle\\Composer\\AcmeHandler::InstallTabs"
],
"post-update-cmd": [
"Acme\\Bundle\\DemoBundle\\Composer\\AcmeHandler::InstallTabs"
]
},
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
}
}
Теперь проблема в том, что когда я выполняю php composer.phar update
тогда композитор не выполняет post-update-cmd или post-install-cmd, но если добавить следующую строку в основной композитор.json
"scripts": {
"post-install-cmd": [
"Acme\\Bundle\\DemoBundle\\Composer\\AcmeHandler::InstallTabs"
],
"post-update-cmd": [
"Acme\\Bundle\\DemoBundle\\Composer\\AcmeHandler::InstallTabs"
]
},
то php composer.phar update
выполнит эту команду, и мои таблицы будут созданы. Мне интересно, почему композитор не выполняет команды из моего пакета composer.json. пожалуйста, помогите почему композитор не исполняет скрипт из комплекта composer.json
Взятые из документов
Note: Only scripts defined in the root package composer.json are executed. If a dependency of the root package specifies its own scripts, Composer does not execute those additional scripts.
К сожалению, вы не можете сделать это с помощью пост-instal/update-скриптов поставщика.
НО
Посмотрите, как это разрешено в BraincraftedBootstrapBundle:
У них есть отдельная команда для копирования значков
Я показываю, что его можно добавить в composer.json. BrainraftedBootstrapBundle → Установка глификонов