5 分钟构建自己得 Facade demo

php artisan make:provider MyServiceProvider

打开创建好的 MyServiceProvider.php 并修改文件如下,最下方 附加class B 是方便测试使用

 
namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class TestProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * [[@return](https://learnku.com/users/31554)](https://learnku.com/users/31554) void
     */
    public function register()
    {
        $this->app->singleton('my-facade',function(){
            return new B();
        });
    }

    /**
     * Bootstrap services.
     *
     * [[@return](https://learnku.com/users/31554)](https://learnku.com/users/31554) void
     */
    public function boot()
    {
        //
    }
}

class B{
    public function b(){
        echo 'this class  B  function a ,you are right~!';
    }
}

在app.php 中 分别加入

'providers'=>[
        ......
        App\Providers\MyServiceProvider::class,
]
'aliases' => [
        ......
        'MyFacade'=>\App\Providers\Facades\MyProvider::class,
]

在app/Providers文件夹下创建Facades文件夹 并创建 MyFacade.php文件

namespace App\Providers\Facades;
use Illuminate\Support\Facades\Facade;

class MyFacade extends Facade
{
    public static function getFacadeAccessor()
    {
        return 'my-facade';
    }
}

至此,大功告成
为了方便测试,直接创建command 进行test
执行 php artisan make:command Misc 并修改生成的文件如下

namespace App\Console\Commands;

use Illuminate\Console\Command;

class Misc extends Command\
{
    protected $signature = 'misc';

    protected $description = 'test my facade';

    public function __construct()
    {
        parent::__construct();
    }

    public function handle()
    {
        \MyFacade::b();
    }
}

php artisan misc

This yourself Facade class B function b ,you are right~!

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!