【问题标题】:How to get a logo in ./app/console like the one composer has?如何像作曲家一样在 ./app/console 中获得徽标?
【发布时间】:2016-04-25 16:15:15
【问题描述】:

我为我的 symfony2 应用程序创建了一堆命令。如果我只是运行控制台,我会看到相当乏味的:

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

如果您运行 composer,您将看到一个 ASCII 艺术徽标以及应用程序本身的名称和版本。

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

他们是如何做到这一点的?因为他们正在使用 symfony2 控制台组件。我查看了命令,但我没有找到它定义的地方。

【问题讨论】:

    标签: php symfony composer-php console-application


    【解决方案1】:

    解决方案不在命令中,而是在作曲家的 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
    

    【讨论】:

      猜你喜欢
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-14
      • 1970-01-01
      • 2017-07-14
      • 1970-01-01
      • 2016-03-15
      相关资源
      最近更新 更多