所以我也做了同样的事情。我创建了自己的
现在
我为我的symfony2应用程序创建了一堆命令。如果我只是运行控制台,我会看到相当不令人兴奋的:
$ ./app/console
Symfony version 3.0.4-DEV - app/dev/debug
如果您运行作曲家,您将看到 ASCII 艺术徽标以及应用程序本身的名称和版本。
$composer
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ / __ `__ / __ / __ / ___/ _ / ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
____/____/_/ /_/ /_/ .___/____/____/___/_/
/_/
Composer version 1.0.2 2016-04-21 12:30:18
他们是如何做到这一点的?因为他们正在使用symfony2控制台组件。我浏览了命令,但没有找到定义它的位置。
解决方案不在于命令,而在于作曲家的Application.php
,它只是扩展SymfonyComponentConsoleApplication
并在那里设置徽标:
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