Если вы используете класс PHP вместо использования оболочки непосредственно для своих сценариев, вы можете использовать систему ввода-вывода Composers для записи в консоль.
Например, создайте класс, подобный этому:
<?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
, благодаря чему ваш myScript
метод выглядит примерно так:
public static function myScript(Event $event): void
{
$event->getIO()->write('foo'):
}
Наконец, чтобы использовать этот класс, просто укажите его в своем post-update-cmd
:
"scripts": {
"post-update-cmd": [
"MyApp\\Composer\\ScriptHandler::myScript"
]
}