作曲家没有解析composer.json

时间:2014-11-25 14:11:59

标签: php json symfony composer-php

我创建了一个包。在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然后编写器不执行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执行此命令,我的表将被创建我想知道为什么composer不从我的bundle的composer.json执行命令。请帮助为什么composer不从bundle的composer.json

执行脚本

2 个答案:

答案 0 :(得分:1)

不幸的是,您不能使用供应商安装后/更新脚本。

<强> BUT

了解如何在BraincraftedBootstrapBundle中解决它:

They have a separate command to copy the icons

我表明它可以添加到composer.json中。 BraincraftedBootstrapBundle -> Installing Glyphicons

答案 1 :(得分:1)

取自the docs

  Note: Only scripts defined in the root package's composer.json are executed.
  If a dependency of the root package specifies its own scripts, Composer does not
  execute those additional scripts.