忍者ブログ

スイーツ(笑)と呼ばないで!!

NEW ENTRY
10 2024/11 1 23 4 5 6 7 8 910 11 12 13 14 15 1617 18 19 20 21 22 2324 25 26 27 28 29 30 12

11/24/08:03  [PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

05/27/16:21  compactを使おう!!

最近、ある部下と一緒にソースを読んでいて、
そうかcompactってあまり知られていないのか・・と知ったので今日はcompactのご紹介。
PHPでコード書いていると連想配列というのをたくさん扱いますね。
[‘key1’=>’value1’,’key2’=>’value2’]
みたいな。

laravelでもいろんなところでこの連想配列登場します。

例えば、viewにデータを渡しでviewの中で参照したいときどうしていますか?

人によっては、

return View::make(‘articles.detail’)
 ->with(‘data1’,$data1)
 ->with(‘data2’,$data2’)
 ->with(‘data3’,$data3)
 ->with(‘data4’,$data4’);

という感じでwithで渡している人もいますね。

laravelでは

return View::make(‘articles.detail’)
 ->withData1($data1)
 ->withData2($data2)
 ->withData3($data3)
 ->withData4($data4);

こんな渡し方もできますね。ちょっとマジカルな感じですね^^

でも、View:makeの第二引数で連想配列受け取れることを知っている人は、

return View::make(‘articles.deatil’,[
 ‘data1’=>$data1,
 ’data2’=>’$data2,
 ’data3’=>’$data3,
 ’data4’=>’$data4]);

こんな感じで書くかもしれないですね。少し良くなった気がしますね。

それをさらに簡単にやるのがcompact。

key名と同じ変数名をセットした連想配列を作成します。

return View::make(‘articles.deatil’,compact(‘data1’,’data2’,‘data3’,’data4’));

laravel5だとさらにviewというヘルパー関数があるので

return view(‘articles.deatil’,compact(‘data1’,’data2’,‘data3’,’data4’));

うん。無駄がないですね。

compact自体はもしかする知識として知っている人はいるかもしれないですね。

でも使ったことがない、使い道を知らない、という人が多いのかもしれません。

このcompact、laravelのフレームワーク内のソースでも多用していますね。

例えば、クエリビルダーのwhereメソッドのソースコードの中でも、

$this->wheres[] = compact('type', 'column', 'operator', 'value', 'boolean’);

こんな感じで使っています。

是非、compactを適材適所で使って無駄なコードを減らしましょう。

拍手[0回]

PR
URL
FONT COLOR
COMMENT
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
PASS

TRACKBACK

TRACKBACK-URL