2017-09-05 3 views
0

symfony3のコンソールHelperSetに独自のヘルパーを追加する方法はありますか?Synfony3コンソール:HelperSetに独自のヘルパーを追加

私はドキュメントに何か役立つものは見つかりませんでした。

+0

それはちょうどで見つけることが、むしろ簡単ですコードに続いてそれはない? 'bin/console'は' Symfony \ Component \ Console \ Application'を拡張した 'Symfony \ Bundle \ Bundle \ FrameworkBundle \ 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'); 

:)

関連する問題