Laravel5自定义门面(静态代理)和服务提供者
门面其实就是为类披上了一层静态的马甲,可以让我们不用去实例化类而直接使用静态方法调用类中的方法。
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日星期一
夕阳何处寻