如何使用Symfony2创建“after deploy”命令

时间:2013-07-22 12:40:09

标签: shell symfony command

我需要创建一个执行命令:

$ php app/console cache:clear --env=prod
$ php app/console composer:update
$ php app/console doctrine:schema:drop --force
$ php app/console doctrine:schema:create
$ php app/console doctrine:fixtures:load .... yes
$ php app/console assets:dump --env=prod

你有什么想法吗? (我已尝试使用Capifony进行部署过程,但这不是此新任务的目的)。

感谢。

3 个答案:

答案 0 :(得分:3)

如果您使用Composer,您可以在composer.json文件的“scripts”部分添加一些安装后命令,例如(这是标准symfony发行版中的一个):

"scripts": {
    "post-install-cmd": [
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
    ],
    "post-update-cmd": [
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
    ]
},

答案 1 :(得分:1)

您是否在类似Unix / Linux的系统上?如果是,您可以将它们全部放在shell脚本中:

#!/bin/sh
dir="path where Symfony is installed"
cd "$dir"
php app/console cache:clear --env=prod
php app/console composer:update
php app/console doctrine:schema:drop --force
php app/console doctrine:schema:create
php app/console doctrine:fixtures:load .... yes
php app/console assets:dump --env=prod

答案 2 :(得分:0)

尝试安装一个控制台包看看https://github.com/CoreSphere/ConsoleBundle 此捆绑包允许您通过浏览器访问Symfony2控制台