0

Symfony 2のコントローラーを作成するとき、私はしばしばかなりの数の変数をテンプレートに渡す必要があります。return array('param1' => $param1, 'anotherBigParam' => $anotherBigParam, 'yetAnotherParam' => $yetAnotherParam);

多くのパラメーターを使用すると、これは非常に長くて醜いものになるので、ヘルパー関数を作成することを考えました。

public function indexAction()
{
    $param1 = 'fee';
    $anotherBigParam = 'foe';
    $yetAnotherParam = 'fum';
    return $this->vars('param1', 'anotherBigParam', 'yetAnotherParam');
}

private function vars() {
    $arr = array();
    foreach(func_get_args() as $arg) {
        $arr[$arg] = $$arg;
    }
    return $arr;
}

これを行うことによる何らかの欠点やリスクはありますか?PHPまたはSymfony2は、同じ結果を達成するためのより良いまたはよりクリーンな方法をすでに提供していますか?

4

2 に答える 2

3

それを行うネイティブな方法があります:コンパクト

$one = 'ONE';
$two = 'TWO';
$a = compact( 'one', 'two' );
print_r( $a );
/*
Array
(
    [one] => ONE
    [two] => TWO
)
*/
于 2012-04-26T13:56:02.243 に答える
2

を探していcompactます。

public function indexAction()
{
    $param1 = 'fee';
    $anotherBigParam = 'foe';
    $yetAnotherParam = 'fum';
    return compact('param1', 'anotherBigParam', 'yetAnotherParam');
}
于 2012-04-26T13:55:04.207 に答える