Laravel5.3でHelper関数(ヘルパー関数)を利用しよう

Posted in Laravel on 11月 02, 2016

Laravelでシステムを構築している時にどのコントローラーでも使う簡単な関数をコピー&ペーストで対応している時ありませんか?

その関数に変更がない場合はいいのですが、もし変更があった場合。。。。 考えるだけで嫌になりますね。

そんな繰り返し利用する関数のコピー&ペーストから解放されたい時に役に立つのがHelper(ヘルパー)関数です。

繰り返し使用する関数をhelpers.phpファイルに保存して、composerでそのファイルの保存場所のパスを登録しておくと どのコントローラーからも簡単に利用することができます。

LaravelのHelper Functions

独自のhelper関数を登録する前にヘルパー関数ってなにって思って人は、以下のLaravelフレームワーク内で実際に使用されているヘルパー関数を見れば参考になるかと思います。

Laravel Help Functions

ヘルパー関数登録手順

ヘルパー関数を利用するまでの手順はシンプルで簡単に行うことができます。

  1. helpers.phpファイルの作成
  2. composer.jsonへのパスの登録
  3. composer dump-autoloadの実行
  4. 登録した関数を使う
  5. 登録後エラーが出たら

helpers.phpファイルの作成

helpers.phpファイルを保存します。この例では、appディレクトリの直下に保存していますが後程composerでパスの登録を行うので、自分の好きな場所に保存をしてください。

composer.jsonへのパスの登録

helper関数を追加したい場合は、以下をcomposer.jsonに追加します。appの直下以外のパスを登録したい場合は、適切な場所を指定してください。

"files": [
            "app/helpers.php"
        ]

composer.json

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

composer dump-autoloadの実行

composer.jsonへの追加が完了したら、その情報をLaravelに伝えなければならないので、composer dump-autoloadを実行します。

$ composer dump-autoload
Warning: This development build of composer is over 60 days old. It is recommended to update it by running "/usr/local/bin/composer self-update" to get the latest version.
Generating autoload files

以上でヘルパー関数(ファイル)の登録作業は完了です。

登録した関数を使う

実際にhelpses.phpに登録した関数が動作するのか確認してみましょう。

helpers.php

<?php 

function test(){

dd('ヘルパー関数の動作確認');

}

コントローラーからtest関数を実行すると画面に以下が表示されればヘルパー関数の登録は正常に行わせれています

ヘルパー関数を利用

登録後エラーが出たら

composer dump-autoload実行後にブラウザからLaravelへの接続でエラーが発生した場合は、cacheのクリアを行ってください。

$ php artisan cache:clear
Cache cleared successfully.