はじめに
最近Laravelの学習を始めたのですが、コントローラからビューへ変数を受け渡す時によく使うcompact関数の具体的な働きがわからなかったので調べました。
compact関数とは
引数で指定した変数名をキーとして、その変数の値を値とする連想配列を作成します。
Laravel独自のものでなく、PHPの組み込み関数です。
Laravelでは、コードをより簡潔で読みやすくするために使用されることが多いようです。
具体的な動き
<?php
$bikes = ['Cannondale', 'Cervélo', 'Colnago'];
print_r(compact('bikes'));
// ['bikes' => ['Cannondale', 'Cervélo', 'Colnago']]
このように、compact('bikes')
とすると、$bikes
という変数が存在する場合にその変数をキー'bikes'
として連想配列に変換します。
Laravelでの使用例
compact関数を使用しない場合
class ExampleController extends Controller
{
public function show() {
$name = 'Richard CARAPAZ';
$team = 'EF Education - EasyPost';
$bike = 'Cannondale';
return view('example', ['name' => $name, 'team' => $team, 'bike' => $bike]);
}
}
compact関数を使用する場合
class ExampleController extends Controller
{
public function show() {
$name = 'Richard CARAPAZ';
$team = 'EF Education - EasyPost';
$bike = 'Cannondale';
return view('example', compact('name', 'team', 'bike'));
}
}
このように、compact関数を使うことでコードが簡潔になり読みやすくなります。
また、渡す変数が増えた場合でもリストを追加するだけで済むため、メンテナンス性も向上します。
おわりに
Laravelにおいて、compact関数にはコードの可読性や保守性を高めるという重要な役割があることを知りました。
今後はそのことも意識しながら利用していこうと思います。