Aimless Blog

Laravelで自作関数を使う

Tag:
laravel

Laravelでヘルパー関数以外に自作した関数を使う方法。
Composerでオートロードしたりサービスプロバイダを使用しないやり方です。

クラスの作成

ファイルの場所は多分どこでも良いのですがとりあえずapp/以下にLibディレクトリを作ってその中にMy_func.phpを作成。
staticメソッドのクラスを作成します。

<?php

namespace App\Lib;

class My_func
{
  public static function xxx()
  {
    //code...
  }
}

エイリアスの登録

config/app.phpのaliasesにクラスを追加。コントローラーでしか自作関数を使わないなら登録しなくてもいいです。

<?php

  'aliases' => [
    'My_func' => App\Lib\My_func::class,
  ],

コントローラーで使う

コントローラーにuse My_funcで使用可能。呼び出すときはMy_func::xxx()で。
エイリアスの登録を行わなかった場合はuse App\Lib\My_func

<?php

namespace App\Http\Controllers;

use My_func;

class YourController extends Controller
{
    public function aaa()
    {
        $a = My_func::xxx();
        return view('',['a'=>$a]);
    }
}

bladeテンプレートで使う

エイリアスに登録しているならbladeテンプレートで使う場合も{{My_func::xxx()}}で呼び出し可能。
ifやforeachでも@foreach (My_func::xxx() as $zzz) {{$zzz}} @endforeachのように使用できます。