2017-09-05 78 views
0

有没有办法将自己的帮助者添加到Symfony3中的控制台HelperSet?Synfony3控制台:添加自己的帮手给HelperSet

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

+0

这是相当简单的只是找到下面的代码是不是? 'bin/console'使用'Symfony \ Bundle \ FrameworkBundle \ Console \ Application',它扩展了'Symfony \ Component \ Console \ Application',它有一个名为'getDefaultHelperSet'的方法。实现你自己的Application类,扩展'Symfony \ Bundle \ FrameworkBundle \ Console \ Application',覆盖'getDefaultHelperSet'并在'bin/console'中使用它。 – ccKep

+0

谢谢你,我跟着代码找到了set()方法。很棒。 :) – freesh

回答

0

好吧,我跟着代码,找到一个简单的解决方案。 :)

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

$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'); 

:)