Laravel5自定义门面(静态代理)和服务提供者

作者: 温新

分类: 【Laravel】

阅读: 3893

时间: 2019-08-25 16:42:22

门面其实就是为类披上了一层静态的马甲,可以让我们不用去实例化类而直接使用静态方法调用类中的方法。

image/20190826/1566751132503916.jpg

一、创建自定义类

1)类文件所在目录:app/Tool/TestTool.php

2)目录起名注意语义化与正确的命名空间

3)目录不一定要放在 app 目录下,随个人喜好

image/20190826/1566751158192956.png

二、创建目录提供者

项目跟目录下执行命令 php artisan make:provider TestToolServiceProvider 创建该服务提供者,将上一步编写的 测试工具类 注册到容器中。

1)执行命令后会在 app/Providers 目录下生成 TestToolServiceProvider.php 文件

2)注意不要忘记了 测试工具类文件(TestTool.php)要在TestToolServiceProvider.php文件中引入

3)把 测试工具类 注册到服务容器中

image/20190826/1566751197506152.png

三、注册服务提供者

在 config/app.php 文件中的 providers 属性中注册刚刚添加的服务提供者

image/20190826/1566751219159471.png

四、创建门面类

在 app 目录下创建一个门面文件夹,用于管理自定义的门面。

1)app/Facades/TestTool.php

2)门面类一定要要继承基类

3)编写静态门面时一定要注意,返回的名称一定要与 bind() 绑定时的名称一致。

image/20190826/1566751240997900.pn

五、注册自定义门面类

在 config/app.php 文件中的aliases属性中追加静态类别名

1)'TestTool' => App\Facades\TestTool::class,

image/20190826/1566751302662674.png

六、测试是否生效

1)app/Http/Controllers/Home/IndexController.php

image/20190826/1566751316278998.png

2019年8月26日星期一

夕阳何处寻

请登录后再评论