Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@JUM22676603

Larave Facadeの使い方

More than 1 year has passed since last update.

ファサードとは

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

公式サイト

制作物のゴール

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"
>>> 
0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
JUM22676603
34歳。約1年のプログラミング独学を経て2020年5月より、webプログラマーとして転職。前職は製造業でのメカ設計を約12年従事。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?