1

symfony2 で codeigniter のようなヘルパー関数を作成できますか?

次のように pre タグ内に配列を出力する関数が 1 つ必要です

public function print_in_pre_tag($array) {
    echo "<pre>";
    print_r($array);
    echo "</pre>";    
}

値を確認するために、その形式のように配列を出力することがよくあります。

いくつかの解決策を提案し、機能をどこに保持できるか教えてください。

編集 1: print_in_pre_tag($array); のように呼び出す場合 関数の上の任意のコントローラー内
で呼び出す必要があります。

4

4 に答える 4

8

そのためのサービス (codeIgniter のヘルパー) を作成する必要があります。

バンドルに Services というフォルダーを作成します。そのフォルダーに「PrintManager.php」という名前のファイルを作成します(または、任意の方法で呼び出しますが、最初のファイルが大文字であることを確認してください)。

次に、PrintManager.php 内に次のように入力します。

名前空間 Company\MyBundle\Services;

クラスPrintManager {

public function print_in_pre_tag($array) {
    echo "<pre>";
    print_r($array);
    echo "</pre>";    
} }

次に、services.yml でファイルを設定します。

パラメータ: print_manager.class: Company\MyBundle\Services\PrintManager (注意、.php 拡張子なし)

サービス: print_manager: クラス: "%print_manager.class%"

そして、コントローラーで次のように呼び出すことができます:

$printManager = $this->get('print_manager');

$printManager->print_in_pre_tag($array);

ところで、あなたができる最善のことは、サービスに機能部分を処理させ、結果をコントローラーに返させ、そこから結果を操作することです。

のように: $text = $printManager->print_in_pre_tag($array);

于 2013-02-20T11:59:04.957 に答える
1

実際、人々がサービスを推奨する理由がわかりません。サービスにはビジネス ロジックが含まれている必要があります。あなたのタスクにはヘルパーを使用してください。それらは静的であり、インスタンスは必要ありません!

于 2015-02-19T10:16:27.160 に答える