Laravel7でカスタムヘルパー関数helper.phpファイルを追加
Laravel7でカスタムヘルパー関数を登録したい場合の手順について説明を行っています。Laravel5, Laravel6でも使用することができます。
Laravelフレームワーク自体もasset(), view(), redirect()などヘルパー関数が登録されており、フレームワーク本体の中で利用しているだけではなくわれわれもLaravelで開発をする際に利用することができます。
Laravelで利用する頻度が高いdd()などはLaravel以外で間違って利用する代表格かもしれません。
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ファイルの追加は完了です。