スイーツ(笑)と呼ばないで!!
| |||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
11/24/08:03 [PR] |
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を適材適所で使って無駄なコードを減らしましょう。 PR
|
|
|