Laravel7でカスタムヘルパー関数を登録したい場合の手順について説明を行っています。Laravel5, Laravel6でも使用することができます。

Laravelフレームワーク自体もasset(), view(), redirect()などヘルパー関数が登録されており、フレームワーク本体の中で利用しているだけではなくわれわれもLaravelで開発をする際に利用することができます。

Laravelで利用する頻度が高いdd()などはLaravel以外で間違って利用する代表格かもしれません。
fukidashi

Laravelで用意されているヘルパー関数以外にも使用頻度の高い関数を自分で作成しhelpers.phpファイルに追加することで効率よくコードを記述することができます。

Helpers.phpファイルの作成

appディレクトリの下にhelpers.phpファイルを作成します。

動作確認を行うためにtest関数を追加しておきます。


<?php

function test(){
  return 'test';
}

Composer.jsonファイルへの追加

composer.jsonファイルを開いて下記のパスを追加してください。ヘルパー関数はappディレクトリの下に作成します。


"autoload": {
    "psr-4": {
        "App\\": "app/"
    },
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "files": [
        "app/helpers.php" //追加
    ]
},

composer dump-autoloadコマンド実行

composer.jsonファイルへの追加作業が完了したら、comoser dump-autoloadコマンドを実行します。


$ composer dump-autoload
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/tinker
Discovered Package: laravel/ui
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.

動作確認

composerコマンド実行後にControlerファイルの中で追加したtest関数を実行して動作することを確認します。登録した関数はグローバル関数なのでどのControllerファイルに記述しても動作します。


class HomeController extends Controller
{
    public function index(){

        dd(test());

HomeControllerが指定されているURLにアクセス後にtestがブラウザ上に表示されればhelers.phpファイルの追加は完了です。