laravel5创建service provider和facade的方法详解

 更新时间:2016年07月26日 11:47:54   作者:轩脉刃  
这篇文章主要介绍了laravel5创建service provider和facade的方法,实例分析了laravel创建service、provider和facade类的具体步骤与实现技巧,需要的朋友可以参考下

本文实例讲述了laravel5创建service provider和facade的方法。分享给大家供大家参考,具体如下:

laravel5创建一个facade,可以将某个service注册个门面,这样,使用的时候就不需要麻烦地use 了。文章用一个例子说明怎么创建service provider和 facade。

目标

我希望我创建一个AjaxResponse的facade,这样能直接在controller中这样使用:

class MechanicController extends Controller {
  public function getIndex()
  {
    \AjaxResponse::success();
  }
}

它的作用就是规范返回的格式为

{
  code: "0"
  result: {
  }
}

步骤

创建Service类

在app/Services文件夹中创建类

<?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文件夹中创建类

<?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文件夹中创建类

<?php namespace App\Facades;
use Illuminate\Support\Facades\Facade;
class AjaxResponseFacade extends Facade {
  protected static function getFacadeAccessor() { return 'AjaxResponseService'; }
}

修改配置文件

好了,下面我们只需要到app.php中挂载上这两个东东就可以了

<?php
return [
  ...
  'providers' => [
    ...
    'App\Providers\RouteServiceProvider',
    'App\Providers\AjaxResponseServiceProvider',
  ],
  'aliases' => [
    ...
    'Validator' => 'Illuminate\Support\Facades\Validator',
    'View'   => 'Illuminate\Support\Facades\View',
    'AjaxResponse' => 'App\Facades\AjaxResponseFacade',
  ],
];

总结

laravel5中使用facade还是较为容易的,基本和4没啥区别。

更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

相关文章

  • ThinkPHP模板中数组循环实例

    ThinkPHP模板中数组循环实例

    这篇文章主要介绍了ThinkPHP模板中数组循环,以实例形式展示了ThinkPHP采用foreach标签循环输出数组的方法,需要的朋友可以参考下
    2014-10-10
  • PHP中文分词 自动获取关键词介绍

    PHP中文分词 自动获取关键词介绍

    用了大家熟知的scws 还有phpanalysis ,需要的朋友可以参考下
    2012-11-11
  • PHP实现AJAX动态网页及相关函数详解

    PHP实现AJAX动态网页及相关函数详解

    ajax其实是利用javascript向服务器请求数据,然后局部修改页面,下面这篇文章主要给大家介绍了关于PHP实现AJAX动态网页及相关函数的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • PHP实现微信公众平台音乐点播

    PHP实现微信公众平台音乐点播

    首先说一下思路,微信提供了接口,只要数据格式满足它所给的接口的XML格式即可以发送给关注者对应的音乐
    2014-03-03
  • Windows下配置Nginx和PHP的步骤及测试

    Windows下配置Nginx和PHP的步骤及测试

    这篇文章主要给大家介绍了关于Windows下配置Nginx和PHP的步骤及测试,文中包括了在Windows环境下配置Nginx和PHP的步骤,包括下载、解压、配置和测试,通过图文介绍的非常详细,需要的朋友可以参考下
    2024-11-11
  • php微信开发之带参数二维码的使用

    php微信开发之带参数二维码的使用

    这篇文章主要为大家详细介绍了php微信开发之带参数二维码的使用,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • PHP切割整数工具类似微信红包金额分配的思路详解

    PHP切割整数工具类似微信红包金额分配的思路详解

    这篇文章主要介绍了 PHP切割整数工具类似微信红包金额分配的思路详解,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • php支付宝APP支付功能

    php支付宝APP支付功能

    这篇文章主要为大家详细介绍了php支付宝APP支付功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • ajax完美实现两个网页 分页功能的实例代码

    ajax完美实现两个网页 分页功能的实例代码

    ajax完美实现两个网页 分页功能的实例代码,需要的朋友可以参考一下
    2013-04-04
  • php之php.ini配置文件讲解案例

    php之php.ini配置文件讲解案例

    这篇文章主要介绍了php之php.ini配置文件讲解案例,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08

最新评论