【问题标题】:Synfony3 Console: Add own helper to HelperSetSymfony 3 控制台:将自己的助手添加到 HelperSet
【发布时间】:2017-09-05 16:16:08
【问题描述】:

有没有办法在 Symfony3 的控制台 HelperSet 中添加自己的助手?

我在文档中没有找到任何有用的东西。

【问题讨论】:

  • 只要按照代码就能找到是不是很简单? bin/console 使用Symfony\Bundle\FrameworkBundle\Console\Application,它扩展了Symfony\Component\Console\Application,它有一个名为getDefaultHelperSet 的方法。实现您自己的应用程序类,扩展Symfony\Bundle\FrameworkBundle\Console\Application,覆盖getDefaultHelperSet 并在您的bin/console 中使用它。
  • 谢谢我按照代码找到了 set() 方法。效果很好。 :)

标签: symfony symfony-console


【解决方案1】:

好的,我按照代码找到了一个简单的解决方案。 :)

我只需添加实现 HelperInterface 的类,或扩展抽象 Helper 类。

$this->getHelperSet()->set(new MyHelper(), 'myhelper');

myhelper 类看起来像这样:

<?php
namespace MyApp\Helper;

use Symfony\Component\Console\Helper\Helper;

class MyHelper extends Helper
{
    /**
     * @param $string
     * @return string
     */
    public function doIt($string) {
        return 'this is your '.$string;
    }

    /**
     * Returns the canonical name of this helper.
     *
     * @return string The canonical name
     */
    public function getName() {
        return 'myhelper';
    }
}

在我的代码中,我可以像这样使用它:

$myhelper = $this->helperSet->get('myhelper');
$myString = $myhelper->doIt('hallo');

:)

【讨论】:

    猜你喜欢
    • 2015-04-15
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 2013-04-04
    相关资源
    最近更新 更多