香港高速VIP云机房火爆上线啦!无需备案,开通即用!配套《巅云自助建站系统3.0》将带给您飞一般的可视化拖拽建站体验,欢迎免费体验。

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

一佰互联网站制作(www.yinxi.net) 发布日期 2019-04-27 10:44:09 浏览数: 45

本文实例讲述了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 AppServices;
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 AppProviders;
use IlluminateSupportServiceProvider;
class AjaxResponseServiceProvider extends ServiceProvider {
  public function register()
  {
    $this->app->singleton("AjaxResponseService", function () {
      return new AppServicesAjaxResponse();
    });
  }
}

这里我们在register的时候定义了这个Service名字为AjaxResponseService

下面我们再定义一个门脸facade

创建facade

在app/Facades文件夹中创建类

<?php namespace AppFacades;
use IlluminateSupportFacadesFacade;
class AjaxResponseFacade extends Facade {
  protected static function getFacadeAccessor() { return "AjaxResponseService"; }
}

修改配置文件

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

<?php
return [
  ...
  "providers" => [
    ...
    "AppProvidersRouteServiceProvider",
    "AppProvidersAjaxResponseServiceProvider",
  ],
  "aliases" => [
    ...
    "Validator" => "IlluminateSupportFacadesValidator",
    "View"   => "IlluminateSupportFacadesView",
    "AjaxResponse" => "AppFacadesAjaxResponseFacade",
  ],
];

总结

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

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

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

一佰互联是全国知名建站品牌服务商,我们有九年网站建设、网站制作、网页设计、php开发和域名注册及虚拟主机服务经验,提供的自助建站服务更是全国有名。近年来还整合团队优势自主开发了可视化多用户”巅云建站系统“3.0平台版,拖拽排版网站制作设计,轻松实现pc站、手机微网站、小程序、APP一体化全网营销网站建设 ,已成功的为全国上百家网络公司提供自助建站平台搭建服务。

相关新闻more

14
05月
百度霸屏?谁也霸不过百度_巅云建站

中秋节那天午时起床后,看了下监控的一些关键词在的搜索功效,然后在微博发了条更新: 最近文库、知道、履历、拇指的百度排名很猖獗,尤其是文库。本... >>详情

03
05月
没钱做推广?看看国外独立开发者的经验

现在市面上充满了大牌子大公司和大制作的手机游戏,经常有游戏花300万成本开发,然后再花2000万推广;这些游戏都梦想着上线之后就有4000万... >>详情

04
05月
搜索引擎的分词技术的简单测试

第一个问题就是百度最近算法调整的影响,让很多朋友都没有了头绪。其实这次最大的调整在分词上,很多朋友也都注意到了。就像前几天说的,原来大家只要... >>详情

14
04月
重庆做网站_怎么选择好的网站建设公司?

重庆做网站_怎么选择好的网站建设公司?怎样选择一个好的网站建设公司建设网站,是每个企业都在纠结的事情。选择秦重庆一佰互联网络技术有限公司,你... >>详情

营业执照. cdn加速服务 备案系统认证 网络安全协会 我们的支付方式AAA认证
上海 北京 深圳 广州 天津 杭州 南京 武汉 成都 沈阳 大连 长沙 济南 青岛 苏州 福州 无锡 哈尔滨 宁波 重庆 大庆 厦门 西安 长春 珠海 郑州 海口 昆明 太原 石家庄 温州 合肥 乌鲁木齐 南宁 南通 合肥 兰州 呼和浩特 贵阳 烟台 秦皇岛 包头 唐山 银川 汕头 连云港 威海 西宁 湛江 北海 万州 涪陵 长寿 黔江 永川 丰都 忠县 江津 南川 开县 云阳 万盛 梁平 垫江 巫山 城口 建站宝盒 免费建站 门户网站建设 微信网站 手机网站 门户网站制作

7x24小时服务电话:18581389571 传真:023-85725751 免费建站交流群:236412099 139947842(自助建站交流) E-Mail:post@yinxi.net 网站投诉:
重庆楚捷科技有限公司 一佰互联©版权所有 自助建站(www.yinxi.net,Inc.) 2001-2020 All Rights Reserved 本站程序受法律保护,网站法律顾问:ITLAW-庄毅雄律师
中华人民共和国信息产业部网站备案号:渝ICP备12000592号