本文实例讲述了laravel5创建service provider和facade的方法。分享给大家供大家参考,具体如下:
laravel5创建一个facade,可以将某个service注册个门面,这样,使用的时候就不需要麻烦地use 了。文章用一个例子说明怎么创建service provider和 facade。
目标
我希望我创建一个AjaxResponse的facade,这样能直接在controller中这样使用:
?
1
2
3
4
5
6
|
class MechanicController extends Controller {
public function getIndex()
{
\\AjaxResponse::success();
}
}
|
它的作用就是规范返回的格式为
?
1
2
3
4
5
|
{
code: "0"
result: {
}
}
|
步骤
创建Service类
在app/Services文件夹中创建类
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?php namespace App\\Services;
class AjaxResponse {
protected function ajaxResponse( $code , $message , $data = null)
{
$out = [
'code' => $code ,
'message' => $message ,
];
if ( $data !== null) {
$out [ 'result' ] = $data ;
}
return response()->json( $out );
}
public function success( $data = null)
{
$code = ResultCode::Success;
return $this ->ajaxResponse(0, '' , $data );
}
public function fail( $message , $extra = [])
{
return $this ->ajaxResponse(1, $message , $extra );
}
}
|
这个AjaxResponse是具体的实现类,下面我们要为这个类做一个provider
创建provider
在app/Providers文件夹中创建类
?
1
2
3
4
5
6
7
8
9
10
|
<?php namespace App\\Providers;
use Illuminate\\Support\\ServiceProvider;
class AjaxResponseServiceProvider extends ServiceProvider {
public function register()
{
$this ->app->singleton( 'AjaxResponseService' , function () {
return new \\App\\Services\\AjaxResponse();
});
}
}
|
这里我们在register的时候定义了这个Service名字为AjaxResponseService
下面我们再定义一个门脸facade
创建facade
在app/Facades文件夹中创建类
?
1
2
3
4
5
|
<?php namespace App\\Facades;
use Illuminate\\Support\\Facades\\Facade;
class AjaxResponseFacade extends Facade {
protected static function getFacadeAccessor() { return 'AjaxResponseService' ; }
}
|
修改配置文件
好了,下面我们只需要到app.php中挂载上这两个东东就可以了
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?php
return [
...
'providers' => [
...
'App\\Providers\\RouteServiceProvider' ,
'App\\Providers\\AjaxResponseServiceProvider' ,
],
'aliases' => [
...
'Validator' => 'Illuminate\\Support\\Facades\\Validator' ,
'View' => 'Illuminate\\Support\\Facades\\View' ,
'AjaxResponse' => 'App\\Facades\\AjaxResponseFacade' ,
],
];
|
相关文章
猜你喜欢
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
- 个人服务器网站搭建:如何选择适合自己的建站程序或框架? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-29 94
-
centos 5.1下的安全设置(适合所有的linux版本)
2025-05-27 50 -
2025-06-04 59
-
2025-05-25 96
-
CentOS 6.X如何更改网卡名称?CentOS 6.X更改网卡名称的方法
2025-05-27 86
热门评论