2017-09-05 49 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'); 

:)