1
0

More than 1 year has passed since last update.

すぐ使えるファサードの設定(Laravel)

Posted at

始めに

Laravelにて、ファサード(Facade)を使用することがあったので、
備忘録として記事にしました。

ファサードとは:staticメソッドみたいな感じ(どこでも使えるメソッドにする機能)

適当なController.php
    // どこのController, ServiceでもTestFacadeクラスのtestメソッドが実行可能!
    TestFacadeClass::test();

環境

開発環境 バージョン
Laravel 8.83.19
PHP 7.3.10

流れ

1、ControllerかServiceにクラスを作成する
2、/app/Providers/AppServiceProvider.phpの設定
3、ファサード用ファイルを作成する
4、config/app.phpの設定

1、ControllerかServiceにクラスを作成する

今回はサービスにファサード化したいクラスを作成します。

TestService.php
class TestFacade
{
    public function test()
    {
        Log::debug('testメソッドが処理されています。');
    }
}

2、AppServiceProvider.phpの設定

/app/Providers/AppServiceProvider.phpの設定をします。

TestService.php
public function register() {
    app()->bind('TestFacade', App\Services\TestService);
}

3、ファサード用ファイルを作成する

TestFacadeClass.php
use Illuminate\Support\Facades\Facade;

class TestFacadeClass extends Facade
{
    protected static function getFacadeAccessor()
    {
        return 'TestFacade'; // AppServiceProvider.phpで設定した名称
    }
}

4、config/app.phpの設定

/config/app.php
'aliases' => [
    'TestFacadeClass' => \App\Facades\TestFacadeClass::class,
]

これで設定完了

使い方

適当なController.php
    // どこのController, ServiceでもTestFacadeクラスのtestメソッドが実行可能!
    TestFacadeClass::test();

最後に

以上で、Laravel のファサード設定方法でした。
ご指摘、ご意見ありましたら、コメント欄にお願いいたします。
ありがとうございました。

参考URL

【Laravel】ファサードとは?何が便利か?どういう仕組みか?
https://qiita.com/minato-naka/items/095f2a1beec1d09f423e

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0