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 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: