Как получить логотип в ./app/console, как у композитора?

Я создал для своего приложения symfony2 несколько команд. Если я просто запускаю консоль, я вижу довольно неинтересные:

$ ./app/console
Symfony version 3.0.4-DEV - app/dev/debug

Если вы запустите composer, вы увидите логотип ASCII art, а также название и версию самого приложения.

$composer
______
/ ____/___  ____ ___  ____  ____  ________  _____
/ /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.0.2 2016-04-21 12:30:18

Как они этого добились? Так как они используют консольные компоненты symfony2. Я просмотрел команды, но не нашел место, где оно определено.

2

Решение

Решение не в командах, а в композиторе Application.php это просто расширяется Symfony\Component\Console\Application и там они установили логотип:

class Application extends BaseApplication
{
private static $logo = '   ______
/ ____/___  ____ ___  ____  ____  ________  _____
/ /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
';

public function getHelp()
{
return self::$logo . parent::getHelp();
}
}

Так что я сделал то же самое. Я создал свой собственный

MyApplication extends Application
{
private static $name = "MyAPP";
/**
* @var string
*/
private static $logo = <<<LOGO
,:',:`,:'
__||_||_||_||__
____["""""""""""""""]____
\ " '''''''''''''''''''' |
~^~^~^^~^~^~^~^~^~^~^~~^~^~^^~~^~^~^~^

LOGO;

/**
* MyApp constructor.
* @param KernelInterface $kernel
* @param string          $version
*/
public function __construct(KernelInterface $kernel, $version)
{
parent::__construct($kernel);
$this->setName(static::$name);
$this->setVersion($version);
}

/**
* @return string
*/
public function getHelp()
{
return static::$logo . parent::getHelp();
}
}

и использовал это в моем app/console:

$kernel = new AppKernel($env, $debug);
$application = new MyApplication($kernel, '1.0.2');
$application->run($input);

И сейчас $ ./app/console/ печатает:

               ,:',:`,:'
__||_||_||_||__
____["""""""""""""""]____
\ " '''''''''''''''''''' |
~^~^~^^~^~^~^~^~^~^~^~~^~^~^^~~^~^~^~^
MyAPP version 1.0.2
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector