宿迁腾云网络网站建设公司

腾云网络 八年经验专注网站建设
  • 首页
  • 服务项目
    • 网站建设
    • 微信小程序
    • APP开发
    • SEO优化
  • 建站费用
  • 成功案例
    • 网站建设案例
    • 小程序案例
    • APP开发案例
    • SEO优化案例
  • 行业动态
    • 网站建设
    • SEO优化
    • 技术日志
  • 联系我们
    • 关于我们
首页 > 行业动态 > 技术日志 > 腾云网络教你如何扩展Laravel常用方法

腾云网络教你如何扩展Laravel常用方法

2019-04-19

注册服务

向容器中注册服务

// 绑定服务
$container->bind('log', function(){
   return new Log();
});
// 绑定单例服务
$container->singleton('log', function(){
   return new Log();
});

扩展绑定

扩展已有服务

$container->extend('log', function(Log $log){
   return new RedisLog($log);
});

Manager

Manager实际上是一个工厂,它为服务提供了驱动管理功能。

Laravel中的很多组件都使用了Manager,如:Auth、Cache、Log、Notification、Queue、Redis等等,每个组件都有一个xxxManager的管理器。我们可以通过这个管理器扩展服务。

比如,如果我们想让Cache服务支持RedisCache驱动,那么我们可以给Cache服务扩展一个redis驱动:

Cache::extend('redis', function(){
   return new RedisCache();
});

这时候,Cache服务就支持redis这个驱动了。现在,找到config/cache.php,把default选项的值改成redis。这时候我们再用Cache服务时,就会使用RedisCache驱动来使用缓存。

Macro和Mixin

有些情况下,我们需要给一个类动态增加几个方法,Macro或者Mixin很好的解决了这个问题。

在Laravel底层,有一个名为Macroable的Trait,凡是引入了Macroable的类,都支持Macro和Mixin的方式扩展,比如Request、Response、SessionGuard、View、Translator等等。

Macroable提供了两个方法,macro和mixin,macro方法可以给类增加一个方法,mixin是把一个类中的方法混合到Macroable类中。

举个例子,比如我们要给Request类增加两个方法。

使用macro方法时:

Request::macro('getContentType', function(){
   // 函数内的$this会指向Request对象
   return $this->headers->get('content-type');
});
Request::macro('hasField', function(){
    return !is_null($this->get($name));
});

$contentType = Request::getContentstType();
$hasPassword = Request::hasField('password');

使用mixin方法时:


class MixinRequest{
   
   public function getContentType(){
       // 方法内必须返回一个函数
       return function(){
           return $this->headers->get('content-type');
       };
   }
   
   public function hasField(){
       return function($name){
            return !is_null($this->get($name));
       };
   }
}

Request::mixin(new MixinRequest());

$contentType = Request::getContentType();
$hasPassword = Request::hasField('password');


Tag:
网站制作公众号

宿迁腾云网络网站建设公司 | 网站开发 | 网站制作 | 网站优化

咨询电话:13160355545

上一篇

返回栏目

下一篇

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

热推

  • 如何让计算机更好的识别理解、理解模拟自然语言
  • php大型网站技术架构PHP是完全免费的开源产品,不用花钱,和也是用样免费的php网站 技术架构设计
  • php网站后台密码破解工具,网站后台用户名密码破解大多数企业应如何确保网站安全?吉林新华明企业带后台的php网站模板
  • php素材网站源码免费下载自媒体人必备的实用工具网站,都是在线的工具素材下载站 php源码
  • 2020年第一季度编程语言排行榜排序算法基本思路
  • php开源企业网站系统微软开源PHP开发工具包,可以让PHP轻松访问微软 php开源企业
  • 本文实例讲述在中利用与把网页html直接生成pdf格式的文件方法
  • PHP()函数字符编码转换的问题讲解更新时间:2019年03月22日
  • php编程起步自学教程#学编程有哪些好点的网站#今天小编给大家推荐6个php编程起步 pdf
  • php框架源码分析PHP的性能:7.0版本提升两到三倍(组图)php框架源码加密

相关

标签

seo(1182) 市场营销(661) 网站制作(573) 网站建设(564) 搜索引擎(553) 网站(482) PHP(361) 编程语言(345) 建站(294) 关键词排名优化(267) 网站建设公司(245) 优化(216) seo排名(207) 域名(190) 软件(171) 网站优化(148) 搜索引擎优化(146) 外链(141) 科技(136) 网站关键词(124) 网站排名优化(123) 域名服务器(120) 网站排名(107) 时政(103) 排名优化(95) 搜索引擎收录(93) 网站设计(92) 电子商务(88) 引擎(86) 移动互联网(85) 开发框架(79) 开发(75) 网站服务器(74) 框架(68) 前端开发(68) 网站分析(66) 网站建设方案(65) 关键(64) 流量(63) 源码(62) 百度优化(62) 网站权重(61) 开放源代码(59) seo培训(53) 网页设计(51) 百度(51) php框架(50) 网站建设知识(50) 大数据(50) 谷歌(49)
宿迁腾云网络网站建设公司
网站建设
  • 私人定制
  • 标准模板建站
  • 经济模板建站
精品模板

宿迁腾云网络网站建设公司

联系电话:13160355545

公司地址:江苏省宿迁市丽景湾华庭北门都市花园公寓9楼907

联系邮箱:admin@tyweb.net

全国分站
  • 北京
  • 广东
  • 东莞 广州 中山 深圳 惠州 江门 珠海 汕头 佛山 湛江 河源 肇庆 潮州 清远 韶关 揭阳 阳江 云浮 茂名 梅州 汕尾
  • 山东
  • 济南 青岛 临沂 济宁 菏泽 烟台 泰安 淄博 潍坊 日照 威海 滨州 东营 聊城 德州 莱芜 枣庄
  • 江苏
  • 苏州 徐州 盐城 无锡 南京 南通 连云港 常州 扬州 镇江 淮安 泰州 宿迁
  • 河南
  • 郑州 南阳 新乡 安阳 洛阳 信阳 平顶山 周口 商丘 开封 焦作 驻马店 濮阳 三门峡 漯河 许昌 鹤壁 济源
  • 上海
  • 河北
  • 石家庄 唐山 保定 邯郸 邢台 沧州 秦皇岛 张家口 衡水 廊坊 承德
  • 浙江
  • 温州 宁波 杭州 台州 嘉兴 金华 湖州 绍兴 舟山 丽水 衢州
  • 陕西
  • 西安 咸阳 宝鸡 汉中 渭南 安康 榆林 商洛 延安 铜川
  • 湖南
  • 长沙 邵阳 常德 衡阳 株洲 湘潭 永州 岳阳 怀化 郴州 娄底 益阳 张家界 湘西
  • 重庆
  • 福建
  • 漳州 泉州 厦门 福州 莆田 宁德 三明 南平 龙岩
  • 天津
  • 云南
  • 昆明 红河 大理 文山 德宏 曲靖 昭通 楚雄 保山 玉溪 丽江 临沧 思茅 西双版纳 怒江 迪庆
  • 四川
  • 成都 绵阳 广元 达州 南充 德阳 广安 阿坝 巴中 遂宁 内江 凉山 攀枝花 乐山 自贡 泸州 雅安 宜宾 资阳 眉山 甘孜
  • 广西
  • 贵港 玉林 北海 南宁 柳州 桂林 梧州 钦州 来宾 河池 百色 贺州 崇左 防城港
  • 安徽
  • 芜湖 合肥 六安 宿州 阜阳 安庆 马鞍山 蚌埠 淮北 淮南 宣城 黄山 铜陵 亳州 池州 巢湖 滁州
  • 海南
  • 三亚 海口 琼海 文昌 东方
  • 江西
  • 南昌 赣州 上饶 吉安 九江 新余 抚州 宜春 景德镇 萍乡 鹰潭
  • 湖北
  • 武汉 宜昌 襄樊 荆州 恩施 孝感 黄冈 十堰 咸宁 黄石 仙桃 随州 天门 荆门 潜江 鄂州 神农架
  • 山西
  • 太原 大同 运城 长治 晋城 忻州 临汾 吕梁 晋中 阳泉 朔州
  • 辽宁
  • 大连 沈阳 丹东 辽阳 葫芦岛 锦州 朝阳 营口 鞍山 抚顺 阜新 本溪 盘锦 铁岭
  • 黑龙江
  • 齐齐哈尔 哈尔滨 大庆 佳木斯 双鸭山 牡丹江 鸡西 黑河 绥化 鹤岗 伊春 大兴安岭 七台河
  • 内蒙古
  • 赤峰 包头 通辽 呼和浩特 乌海 鄂尔多斯 呼伦贝尔
  • 贵州
  • 贵阳 黔东 黔南 遵义 黔西 毕节 铜仁 安顺 六盘水
  • 甘肃
  • 兰州 天水 庆阳 武威 酒泉 张掖 陇南 白银 定西 平凉 嘉峪关 临夏 金昌 甘南
  • 青海
  • 西宁 海西 海东 海北 果洛 玉树 黄南
  • 新疆
  • 乌鲁木齐 伊犁 昌吉 石河子 哈密
  • 西藏
  • 拉萨 山南 林芝 日喀则
  • 吉林
  • 长春 白山 白城 延边 松原 辽源 通化 四平
  • 宁夏
  • 银川 吴忠 中卫 石嘴山 固原
SiteMap
网站地图
TAG标签
Copyright © 2017-2025 TYWEB.NET 宿迁腾云网络科技有限公司 ALL RIGHTS RESERVED.   苏ICP备17033535号-1

热门搜索

百度 下载 2025 2024 2026 货源 货货源 虚拟 禅道 报名 金蝶KIS旗舰版
  • 客服

    在线客服

  • 电话

    13160355545

  • 微信

精品模板
建站费用
成功案例
联系我们