我创建了一个包 . 在bundle中,我在数据库中创建了两个表 . 这是我的composer.json .
{
"name": "xxxx/xxx-designer",
"description": "XXXX",
"license": "MIT",
"homepage": "https://github.com/giturl",
"autoload": {
"psr-0": {
"": "src/"
}
},
"authors": [
{
"name": "xxxx",
"email": "xxxx@gmail.com"
}
],
"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
然后composer不执行post-update-cmd或post-install-cmd但是如果将以下行添加到main composer.json中
"scripts": {
"post-install-cmd": [
"Acme\\Bundle\\DemoBundle\\Composer\\AcmeHandler::InstallTabs"
],
"post-update-cmd": [
"Acme\\Bundle\\DemoBundle\\Composer\\AcmeHandler::InstallTabs"
]
},
然后 php composer.phar update
执行此命令,我的表格将被创建我想知道为什么作曲家不从我的包中执行命令's composer.json. please help why composer not execute script from bundle' s composer.json
2 回答
取自the docs
不幸的是,您不能使用供应商安装后/更新脚本来做到这一点 .
BUT
看看它是如何在BraincraftedBootstrapBundle中解决的:
They have a separate command to copy the icons
我表明它可以添加到composer.json中 . BraincraftedBootstrapBundle -> Installing Glyphicons