東京都府中市、九段下のWEB制作会社Maromaroのブログです

2024.04.08

松橋一誠

Laravel開発の強い味方!ヘルパ関数を使いこなそう!

こんにちは、Maromaroの松橋です。

今回は、Laravelのヘルパ関数についてまとめてみました。

Laravelで開発していると「ヘルパ関数」という単語をたくさん目にするのですが、はじめて開発すると、そもそも何かなど、戸惑うことがあると思いますので、まとめて、ご紹介したいと思います。

Laravelのヘルパ関数とは

ヘルパ関数とは、Laravelにデフォルトで組み込まれた一連の関数です。例えば、文字列操作、配列操作、ファイルシステム操作、URL生成、セッション管理、、、など様々な関数が用意されており、文字通り開発を強力に助けてくれる関数です。

ヘルパ関数を知っておくことの重要性

ヘルパ関数を知っておけば、コードを短く書くことができ、保守性が向上します。さらに、コードを再発明する必要がないので、開発工数の削減ができます。ヘルパ関数を知らずに開発を進めてしてしまうと、無駄なコードを増やしてしまい、さらに保守性を損なってしまうので、なるべく多く知っておくことをお勧めします。

ヘルパ関数の例

ということで、基本的なヘルパ関数をまとめてみました。

  • url():絶対URLを生成。
  • route():ルート名からURLを生成。
  • config():アプリケーションの設定値を取得。
  • view():ビューインスタンスを返す。
  • redirect():リダイレクトレスポンスを生成。

これらの関数は、Laravelで開発していれば、Google検索で調べると、日常的に出てくる関数なので、見慣れている、という方もいらっしゃるかもしれません。

ヘルパ関数の一覧がまとめられているウェブサイトがあるので、何があるか理解したい時は見てみましょう。

10.x ヘルパ Laravel

ヘルパ関数の利用方法

ヘルパ関数は、Laravelにデフォルトで含まれており、単に関数名をLaravelフレームワーク内で使用するだけで、関数を呼び込むことができます。

例えば、絶対URLを生成したい場合は、url()関数を使用します。

// <https://example.com/path> URLを生成
$url = url('path');

また、下記のように複数の関数を組み合わせて(メソッドチェーン)利用することも可能です。この処理は商品詳細ページへリダイレクトさせて、新規登録のフラッシュメッセージを表示させる処理になります。

// 商品詳細ページへリダイレクト&新規登録のフラッシュメッセージを表示
return redirect()->route('items.detail', ['item' => $item])->with('success', '新規登録しました。');

ヘルパ関数の応用的なテクニック

また、Laravelは、独自にカスタムヘルパ関数を作成し、プロジェクト特有ニーズに対応することが可能です。

例えば、日付をそのサイトの決まった書式に合わたい時などに便利です。

<?php

if (! function_exists('format_date_of_this_site')) {
    function format_date_of_this_site($date) {
        // ここに関数のロジックを記述
        $year = substr($date, 0, 4);
        $month = substr($date, 4, 2);
        $day = substr($date, 6, 2);
        echo $year . '-' . $month . '-' . $day;
    }
}

定義するファイルは下記の手順で作成し、Laravelフレームワーク内で利用できるように設定します。

app/Helpersにファイルを作成します。

$ touch app/Helpers/itemHelper.php

composer.jsonファイルを開き、autoloadセクションに新しいファイルを追加します。

"autoload": {
    "files": [
        "app/Helpers/itemHelper.php"
    ],
}

Composer Autoloadの再生成します。

$ composer dump-autoload

Laravelフレームワーク内で定義した関数を利用します。

<?php
// 2024-04-01 とフォーマット
format_date_of_this_site('20240401');

さいごに

今回はLaravelのヘルパ関数についてまとめてましたが、デフォルトで利用できる多数の関数とそのプロジェクト特有の関数をカスタマイズで利用できるなど柔軟に利用できて便利ですね。

以上、Maromaroの松橋でした。