LoginSignup
1
0

More than 3 years have passed since last update.

Larave Facadeの使い方

Posted at

ファサードとは

ファサードとは、コンテナを通じてオブジェクトにアクセス方法を提供するクラスのことです

公式サイト

制作物のゴール

Hogeファサードの作成
hogehpgeを出力する

サービスプロバイダーの作成

$ php artisan make:provider HogeServiceProvider
Provider created successfully.

hogeクラスの登録

app/Providers/HogeServiceProvider.php
    public function register()
    {
        $this->app->bind(
          'hoge',
          'App\Http\Compornents\Hoge'
        );
    }

bind()メソッドの第一引数にはいわゆる識別子としての名前を記載する
第二引数には、対象となる独自処理クラスであるHogeクラスを渡します。
今回の設置箇所はApp\Http\Compornents\Hogeとする。

ファサードクラスの作成

laravel/app 配下にFacadesディレクトリを作成し、その中にHoge.phpを作成

コンポーネントの登録名を取得する為のアクセサーgetFacadeAccessor()メソッドを以下のように定義します。

app/Facades/Hoge.php

<?php
namespace App\Facades;

use Illuminate\Support\Facades\Facade;


class Hoge extends Facade
{
  protected static function getFacadeAccessor() {
    return 'hoge';
  }
}

独自処理クラスの作成

laravel/app/Http 配下に Components ディレクトリを作成し、その中にHoge.phpを作成

app/Http/Components/Hoge.php
<?php
namespace App\Http\Components;

class Hoge
{
  public function echoHoge()
  {
    return 'HOGEHOGE';
  }
}

サービスプロパイダーとエイリアスの登録

config/app.php
<?php

return [
    'providers' => [

        App\Providers\HogeServiceProvider::class,

    ],

    'aliases' => [

        'Hoge' => App\Facades\Hoge::class,

    ],

];

tinkerで動作確認

$ php artisan tinker
Psy Shell v0.9.12 (PHP 7.3.13 — cli) by Justin Hileman
>>> Hoge::echoHoge();
=> "HOGEHOGE"
>>> 
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