compact関数のひと工夫でCakePHPのコントローラーをすっきりさせる

CakePHP2

CakePHPのコントローラー上でよく利用する【set関数】。この関数をもっと見やすく、スマートに書く方法を紹介します。かなり見やすくなるおすすめの記述方法です。

 

■set関数の普通の書き方

 

CakePHPでViewに値を渡すとき、以下のように記述すると思います。以下のように記述すると、$hogehogeと$mogemogeでviewからアクセスすることができます。

 

public function actionName() {
    $hogehoge  = 'ほげほげほげ';
    $mogemoge = 'もげもげ';

    $this->set('hogehoge', $hogehoge);
    $this->set('mogemoge', $mogemoge);
}

しかし、上記の書き方だと【setする変数の数だけset関数を記述】しないといけないです。set関数が多くなって、視認性もメンテナンス性も悪いです。

そこで利用するのがcompact関数によるsetです。

 

■PHPのcompact関数によるsetの記述の簡略化

 

compact関数を利用することでかなりコントローラーをすっきりさせることができます。以下のように記述します。これで、同様に$hogehogeと$mogemogeでviewからアクセスできます。

 

<?php

public function actionName() {
    $hogehoge = 'ほげほげほげ';
    $mogemoge = 'もげもげ';

   $this->set(compact(['hogehoge' , 'mogemoge']));
}

 

もし、viewにセットしたい値が10個あってもsetは1行で済みます。変数名とviewでの変数のズレもなくなって便利に利用できます。

 

是非、利用してみてください。では。