
おつかれさまです!
‘23年度入社の紙屋です! 
9月に入って朝晩の暑さがすこーーしずつ和らいでいたような気がしますね。早く日中の暑さも和らいでいくといいですね。
8月で課題の会員登録のアプリケーションを作り終えました。
外部研修でもLaravelでwebアプリケーションをつくりましたが、そのときはとりあえずの実装を優先して、「この関数がどんな仕事をしているのか、どんな機能があるのか」ということを考えていませんでした。
そこで、今回はLaravelにおけるヘルパ関数に焦点をあてて振り返ろうと思います!

ヘルパ関数とは?
 Laravelに搭載されている独自の関数のことで、いろいろなところで呼び出せる便利な関数です。
Laravelの公式ドキュメントをみえると数えただけで213個ありました(今回Laravel ver9で実装)。
まだまだ分からないことが多いので、今回は使ったものに触れながら振り返ります!
今回の会員登録フォームで使用したヘルパ関数は、
・view     ・redirect     ・route     ・request     ・session
・old     ・dd     ・dump     ・config
でした。
Contollerや入力フォーム、処理の確認で使うものが多く、外部研修でも使っていたので、コードレビューいただく前から使っていました。しかし、config関数は教えていただいてからの導入でした。
よくアドバイスいただく内容として、同じコードで内容量が多く、その処理を複数個所で使用する場合は、可読性や再利用性を考えてコーディングした方が良いと教えていただきます。
今回config関数をどこに用いたかというと、formタグで会員情報の登録や編集を行う箇所でバリデーションを実装するときに、バリデーションの中身は同じものなので、バリデーション時にコードが冗長にならないように利用しました。
まずは、config関数の公式ドキュメントを確認します。
「config関数は設定変数の値を取得します。設定値はファイル名とアクセスしたいオプションを「ドット」記法で指定します。」
とあります。
| 1 | $value = config('[ファイル名].[キー]');  | 
となっており、「/config/(.phpファイル)」内に記述されている配列を呼び出します。
では、私はどのように実装したかというと、
Controller内には以下のように記述し、
| 1 2 | // バリデーションの実行 $request->validate(config('mySetting.validate')); | 
「/config/mySetting.php」ファイル内に
| 1 2 3 4 5 6 7 | return [     'validate' => [         'last_name' => 'required|max:20',         'first_name' => 'required|max:20',         … 長いので以下省略 …     ], ]; | 
と記述しました(教えてもらいながらですが…)。
これでバリデーションチェック時の項目をController内に何度も記述する必要が無く、バリデーション内容の変更・修正時も配列の中身を記述することでスッキリします。
ちなみに、ヘルパ関数がどんな処理をしているのかは、「/vender/laravel/framwork/src/illuminate/Foudation/helpers.php」ファイル内に記述してありました。
| 1 2 3 4 | // 一部抜粋 if (is_array($key)) {     return app('config')->set($key); } | 
確かに配列があればキーを返してくれているみたいです。
ちなみに、今回使用した「ドット記法」についてちょっと触れると、配列からの値の取得時にキーを「.」でつなげることで、多次元配列の場合、より深い階層へネストし値を取得してくれます。
例えば、Arr:get()関数の公式ドキュメントを参照すると、
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | use Illuminate\Support\Arr; $array = [     'products' => [         'desk' => [             'price' => 100         ]     ] ]; $price = Arr::get($array, 'products.desk.price'); // 100 | 
となっています。$arrayのような多次元配列から値を取得したい場合は、第2引数のキーの部分をドット記法で、欲しい値までネストしていきます。
ちなみにArr::get()関数に第3引数をセットすると、第2引数に指定したキーが存在しない場合の値を返してくれます。
改めて振り返ってみると、「なるほど!」と思いました!
今後も、いろいろと忘れないようにまとめていきたいと思います。
では、また次回!!


