作曲家脚本回声

时间:2019-03-30 21:22:01

标签: php composer-php

composer.json脚本中回显到控制台的最佳方法是什么?例如,我使用脚本部分创建了一个自定义安装程序,最后我想在控制台中显示一条消息。

此刻,我只是在做这样的回声

"scripts": {
    "post-update-cmd": [
        "clear",
        "echo \"\n\nInstallation Complete\""
    ]
}

这可行,但是它会在控制台中打印出命令和回显,因此最终看起来像这样。

enter image description here

当作曲家仍然输出脚本中的所有自定义命令时,它会加倍并且看起来很丑!

使用composer scripts将消息回显到控制台的最佳和最干净的方法是什么?

1 个答案:

答案 0 :(得分:0)

如果您使用PHP类而不是直接使用shell编写脚本,则可以使用Composers的IO系统写入控制台。

例如,创建一个与此类似的类:

<?php

declare(strict_types=1);

namespace MyApp\Composer;

use Composer\Script\Event;

class ScriptHandler
{
    public static function myScript(Event $event): void
    {
        // Your script here
    }
}

Composer\Script\Event类具有一个名为getIO()的方法,您可以使用该方法来获取Composer\IO\IOInterface的实例,然后该实例具有一个方法write,使您的{{1} }方法看起来像这样:

myScript

最后,要使用此类,只需在您的public static function myScript(Event $event): void { $event->getIO()->write('foo'): } 中引用它即可:

post-update-cmd