gpt4 book ai didi

php - 在 Composer 安装后如何运行 Symfony 控制台命令?

转载 作者:IT王子 更新时间:2023-10-28 23:58:00 25 4
gpt4 key购买 nike

我的 composer.json 包含以下声明:

    "post-install-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
],

我想运行我在 src/MyBundle/Command/MyCommand.php 中的自定义控制台命令。如何将其添加到脚本中以在 composer 中运行?

最佳答案

您可以看到 Sensio DistributionBundle 的安装后 Hook 如何工作。

例如,您可以这样调用 Acme Demo 包的 Hello World 命令:

脚本处理程序

<?php

namespace Acme\DemoBundle\Composer;

use Composer\Script\CommandEvent;

class ScriptHandler extends \Sensio\Bundle\DistributionBundle\Composer\ScriptHandler {


/**
* Call the demo command of the Acme Demo Bundle.
*
* @param $event CommandEvent A instance
*/
public static function helloWorld(CommandEvent $event)
{
$options = self::getOptions($event);
$consoleDir = self::getConsoleDir($event, 'hello world');

if (null === $consoleDir) {
return;
}

// $extraParam = '';
// if (!$options['who']) {
// $extraParam = ' --who';
// }

static::executeCommand($event, $consoleDir, 'acme:hello', $options['process-timeout']);
}

}

您可以在 json 文件本身中管理额外的参数。

composer.json

"post-install-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::removeSymfonyStandardFiles",
"Acme\\DemoBundle\\Composer\\ScriptHandler::helloWorld"
],

测试

我扩展了版本的 sensio-distribution 包的 ScriptHandler 类:

sensio/distribution-bundle (v3.0.18)

希望对你有帮助

关于php - 在 Composer 安装后如何运行 Symfony 控制台命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29078380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com