Laravel--Facades门面
来源:互联网 发布:教育行业网络推广方案 编辑:程序博客网 时间:2024/05/17 02:36
使用Laravel框架必不可少的会用到它很多强大的门面类(Facades),门面提供了一个“静态”接口到服务容器中绑定的类
我们首先创建一个需要绑定到服务容器的Test类:
<?phpnamespace App\Facades;class Test{ public function doSomething() { echo 'This is TestClass\'s method doSomething'; }}
然后创建一个静态指向Test类的门面类TestClass:
<?phpnamespace App\Facades;use Illuminate\Support\Facades\Facade;class TestClass extends Facade{ protected static function getFacadeAccessor() { return 'test'; }}
接下来我们要在服务提供者中绑定Test类到服务容器,修改TestServiceProvider类(代码修改自上一节服务提供者)如下:
<?phpnamespace App\Providers;use Illuminate\Support\ServiceProvider;use App\Services\TestService;use App\Facades\Test;class TestServiceProvider extends ServiceProvider{ /** * Bootstrap the application services. * * @return void */ public function boot() { } /** * Register the application services. * * @return void */ public function register() { $this->app->singleton('test',function(){ //return new TestService(); return new Test; }); $this->app->bind('App\Contracts\TestContract',function(){ return new TestService(); }); }}
再然后需要到配置文件config/app.php中注册门面类别名:
'aliases' => [ ...//其他门面类别名映射 'TestClass' => App\Facades\TestClass::class,],
最后修改TestController代码如下:
<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use App\Http\Requests;use App\Http\Controllers\Controller;use App;use TestClass;use App\Contracts\TestContract;class TestController extends Controller{ public function __construct(TestContract $test){ $this->test = $test; } /** * Display a listing of the resource. * * @return Response */ public function index() { // $test = App::make('test'); // $test->callMe('TestController'); //$this->test->callMe('TestController'); TestClass::doSomething(); } ...//其他方法}
注意:不要忘了在调用门面类TestClass的文件顶部使用use TestClass;引入TestClass,否则将不能正确调用。
好了,我们可以去浏览器中测试了,访问http://selfstudy.com/test,页面将会输出:
This is TestClass's method doSomething
0 0
- Laravel--Facades门面
- 门面模式(Facade) laravel Facades
- 对 laravel 中服务提供者(Provider)和 门面(Facades) 的理解
- 如何使用 Laravel Facades ?
- Laravel中的Facades
- Laravel 中的Facades的研究
- laravel--门面
- Laravel 5 系统架构:服务提供者、服务容器、Contracts、Facades
- Laravel 门面类:Facade简记
- Laravel 类加载,依赖注入&门面
- Laravel 控制反转和门面模式概念详解
- laravel 服务提供者 别名 门面 3者之间的关系
- Laravel框架学习(使用DB门面操作数据库 原生SQL)
- hybris学习笔记:Trail ~ Testing the Facades
- Lavarel中Facades的理解和使用
- Laravel
- laravel
- Laravel
- 文本聚类——Kmeans
- 如何在Caffe中配置每一个层的结构
- Perfect Squares
- linux内存寻址解析
- BZOJ-2462&&2351 矩阵模板&&Matrix 暴力 or Hash orAC自动机 or KMP
- Laravel--Facades门面
- 【读书笔记】《R语言实战》Day1
- PHP代码优化
- android基础课之Progress
- java毕向东听课笔记5(构造函数间的调用)
- 4种Java引用浅解
- autocomplete 插件用法和用js实现autocomplete
- Java线程同步-牛逼的线程同步实现
- 备忘录模式(Memento)