范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

一起了解PHP中YaConf扩展的使用

  上篇文章我们介绍了一个比较出名的 YAML 格式的配置文件相关的操作,今天我来学习另外一个配置文件扩展。这个配置文件的写法其实与 php.ini 的这种 PHP 标准的配置格式比较类似,但是又有一些不同。不过内容非常简单,大家仅供参考。 Yaconf 配置文件及格式
  Yaconf 从名字是不是看出什么端倪了?没错,和 Yaf 、Yac 一样,又是我们鸟哥的作品。不得不说大神还是为我们贡献了很多很好的作品哦。后面我们还会讲一个它的小众开源扩展,而 Yaf 扩展我们将在未来学习框架的时候再深入地进行学习。
  Yaconf 的安装也是普通地扩展安装的方式,不过它需要 PHP7 以上的版本。另外,在安装之后还需要在 php.ini 文件中指定 yaconf.directory ,也就是配置文件存放的目录。这个属性是不能通过 ini_set() 配置的,也就是必须在程序运行前就载入到 PHP 运行环境中。我们按照文档的说明将它配置为 /tmp/conf ,然后在这个目录下建立自己需要的配置文件就可以了。
  Yaconf 的语法非常简洁,鸟哥的作品都主打性能,所以 Yaconf 也是一个高性能的配置管理扩展。关于 Yaconf 的具体介绍可以查看文章最下方第二条链接的说明,在这里我们就看一些它的语法以及具体的使用。 foo="bar" phpversion=PHP_VERSION env=${HOME}  arr.0=1 arr.1=2 arr[]=3 arr[3]=4  map.foo=bar map.bar=foo map.foo.name=yaconf
  看出来什么特点了吗?首先,如果是带双引号的内容,会将这个配置变量当成字符串,如果不是双引号的,则会尝试以 PHP 来进行解析。然后数组和 HashMap 这样的写法也都是完美支持的。似乎是比 php.ini 的写法强悍了一些。不过还不止。 [parent] parent="base" children="NULL" [children : parent] children="children"
  嗯,你没看错,它还可以支持这样的继承写法,中括号标示的内容可以看作是一个配置片断,或者说一节内容,具体作用我们后面会看到。 获取配置内容
  配置语法就是这些,接下来我们要具体看看这些配置信息要怎么读取出来。这个扩展其实就提供了两个函数,一个用于读取,一个用于查询配置是否存在,我们先来看一下如何读取数据。 var_dump(Yaconf::get("test.foo")); // string(3) "bar" var_dump(Yaconf::get("test.phpversion")); // string(5) "7.4.4" var_dump(Yaconf::get("test.env")); // string(5) "/root"
  这个函数相信不用多解释了,test 是我们的文件名,也就是在 /tmp/conf/test.ini 这个文件中,我们把上面的测试配置信息写在了这个配置里面。当然,我们也可以在这个目录中定义更多的配置文件,比如我们另外定义了一个配置文件 foo.ini ,那么就可以这么读取: var_dump(Yaconf::get("foo.SectionA.key")); // string(3) "val"
  对于数组配置信息来说,直接获取到的内容返回的就是数组格式的。 var_dump(Yaconf::get("test.arr")); // array(4) { //     [0]=> //     string(1) "1" //     [1]=> //     string(1) "2" //     [2]=> //     string(1) "3" //     [3]=> //     string(1) "4" //   }  var_dump(Yaconf::get("test.arr.1")); // string(1) "2"  var_dump(Yaconf::get("test.map")); // array(2) { //     ["foo"]=> //     array(1) { //       ["name"]=> //       string(6) "yaconf" //     } //     ["bar"]=> //     string(3) "foo" //   }  var_dump(Yaconf::get("test.map.foo.name")); // string(6) "yaconf"
  在获取数组内部的数据时,我们直接使用 . 来获取序列的内容就可以了。最后就是上面提到过的分片和继承的功能。 var_dump(Yaconf::get("test.parent.parent")); // string(4) "base" var_dump(Yaconf::get("test.children.parent")); // string(4) "base"  var_dump(Yaconf::get("test.parent.children")); // string(4) "NULL" var_dump(Yaconf::get("test.children.children")); // string(8) "children"
  test 是文件名,而 parent 就是我们定义在中括号里面的分片名称,接着继续点分片下面定义的配置项的名称就可以获取到这个分片下面的配置信息内容了。而继承的使用相信从代码中大家也看出来了,parent 的 parent 配置项被 children 继承后,children 中不需要再定义这个配置项就可以直接获取到父级中定义过的这个配置项内容。而 children 中重写了 children 这个配置项,所以在 children 分片中的 children 配置项显示的就是它自己定义的内容。 检测配置信息是否存在
  前面说过这个扩展中一共就两个方法,第二个就是用于检测配置项是否存在的一个方法,非常简单。 var_dump(Yaconf::has("test.foo")); // bool(true) var_dump(Yaconf::has("test.baz")); // bool(false) 总结
  说实话,这个配置扩展也并不是非常常见的一个扩展应用。因为大家目前在使用的框架不管是 Laravel 还是 TP 都会有它们自己的一套配置文件格式及操作。当然,如果说你是鸟哥的忠粉或者本身公司系统是架构在 Yaf 、Yac 、Yar 之上的话,那么加上这个 Yaconf 的话就可以看作是一整套完整的高性能内部扩展架构。它们主打的特点都是性能强悍,毕竟是从底层 C 扩展的角度来提供的框架,而不是通过 Composer 来使用 PHP 编写的框架。这个我们将来在学习和讲解框架的时候说不定会拿出来单独做一个系列哦!
  测试代码:
  https://github.com/zhangyue0503/dev-blog/blob/master/php/2021/01/source/11.一起了解PHP中YaConf扩展的使用.php
  参考文档:
  https://www.php.net/manual/zh/book.yaconf.php
  https://www.laruence.com/2015/06/12/3051.html

司马南扯下联想遮羞布,谁还记得2016年的奥飞动漫近日司马南先生揭开了联想高管疯狂吸血联想的内幕。杨元庆等人把联想当做自己家的小金库,疯狂往自己口袋里输入,居然吧盈利这么高的联想吸到资不抵债?!看到这个新闻,我立刻想到了2016年李佳琦薇娅代表的直播电商妄图裹挟欧莱雅等产业链数字化的企业?直播电商是在后疫情时代用资本堆积起来的虚假数字化升级,只是国内产业数字化改造路径上,针对新零售O2O模式下销售渠道的形式优化,并未对人货场关系进行重新定义,严格意义来说,只是一场资WiFi名字后边的5G是指什么?有些家里可能会有两个同样名字的WiFi,而其中一个名字的最后有个5G,那么,这个5G和常说的5G信号是一回事吗?并不是,无线路由器上的5G指的是WiFi的工作频段,手机上的5G指的最近网络舆论大面积喷著名企业,不正常吧?网络舆论大面积喷著名企业大概是指平台媒体对联想的诟病和批评吧?联想已经不是中国的著名企业了,已经从一家国有企业蜕化为某些人侵占国有资产的平台,而且华为在关键时刻完全没有民族企业的担至强cpu那么好,为什么日常装机的时候一般都选酷睿系列的呢?谢邀,至强看似性价比很高,但是为什么很多人不用至强。至强系列都是没有集成显卡的,早期的至强系列都用在服务器上,是771针,而现在某宝很多奸商771硬改775强行上到G41G45等主虚拟货币一旦崩溃,对经济有什么影响?谢邀!首先简答至少没有负面影响,只是回到2009年之前,有史以来最大的赌场关张而已不知为何?老是有莫名其妙的网民我,说我一直看空比特币。而事实上,长久关注我的网友都该知道,这几年,为什么很多小米老用户,换下一部手机再也不考虑小米?我用过16年买了一台4128G的小米,说一下再也不想买小米手机了,主要是耗电快,手机玩得多要一天两充,再有就是充电口慢慢的越来越松动,要控制好才能充电进去,烦死了我家已经用了十几部如果这个双十一没换手机,今年就别换了,两大原因双十一已经落幕一段时间了,相信有很多朋友借助这个双十一淘到了自己喜欢的手机,综合来看这个双十一的活动力度绝对是可以的,但是因为种种原因,有些朋友可能没换手机,在这里我给大家一个建议价格再创新低屏下摄像头骁龙870仅2498元小米MIX4还香吗?在手机行业,降价促销似乎是家常便饭,但真正吸引消费者的促销并不多。不过,小米MIX4降价千元还是引发了一场骚动。降价后,屏下摄像头手机到手价只要3000多块钱,性价比非常高。在小米京东方有望2023超过LG,成苹果第二大OLED屏幕供应商11月19日消息,据国外媒体报道,有研究机构预计,国内的屏幕制造商京东方,有望在2023年超过LG显示,成为苹果的第二大OLED屏幕供应商。研究机构是根据生产线的变化,预计京东方有小米MIX5Pro核心配置曝光,MIX4跌至大米价惨遭疯抢下一代小米MIX,迭代周期可能比预期的要短。有爆料者发现,型号为2202121C和2202121AC的设备提交注册,商标显示为MIX,预计分别对应小米MIX5和小米MIX5Pro。
零代码开发,三步帮您搞定网站访问量统计流量为王的时代,对于互联网的产品,访问量的统计显得非常重要。流量会来自不同渠道不同平台不同端口,对于数据的分析又需要有不同的维度。因此,要专门开发一套访问量统计系统,无论是难度,还电商小卖家适合卖什么产品?所有搞运营的搞培训的都会跟大家说不要卖衣服鞋子,但是呢这些运营又会跟你说,秋冬流量来了刷起来把握住,但是除了衣服鞋子,其它产品跟秋冬流量有关系?卖百货的,家私的,五金的等等跟秋冬流电动车的火热将帮助这些芯片股起飞如果电动汽车销量继续上升,为汽车制造芯片的半导体公司有望看到巨大的利益。以下是高盛瑞银和摩根士丹利在该板选择的最热门股票。与内燃机汽车相比,电动车需要更多的芯片,而且是更复杂的芯片行情苹果华为小米OV五大品牌用户画像和你心里想的一样吗研究机构QuestMobile最近发布的一份2021年6月中国智能终端半年洞察报告数据里还有一组关于苹果华为小米OPPOvivo五大手机品牌的用户画像。报告里主要描述了四类用户群体预算三千买哪款智能电视?8月好价,这三款性价比拉满,可闭眼入当大屏电视成为了消费者选择的主流产品后,贪心的消费者又会在这个尺寸上再加上一个条件便宜,这样看来,市面上55英寸的智能电视无疑会是最好的选择。而在如今这个时间点,618年中大促已过2021年智能门锁一线品牌最新排名公布随着科技的进步,很多智能产品都走进了大家的生活,尤其是在智能安防系列中,从起初问世时候的智能密码锁,到现在的多功能。而全自动指纹锁是智能科技发展的产物,它更便于安装调试使用,同时更全屋智能家居欧瑞博MixPad精灵开关的应用场景看到这个,不得不夸一下MixPad精灵触屏语音开关的免安装设计。相比很多智能开关都需要零火线供电,MixPad精灵触屏语音开关则可以通过TypeC接口充电直接使用。所以,这个开关不日媒日本专业机构解剖华为高档智能手机中国产零部件占六成进步不小中国小康网8月31日讯老马在华为智能手机上,中国造零部件的采用出现激增。拆解华为支持5G的最新款智能手机,中国造的比率按金额计算达到约6成,相比旧机型翻了一番。在美国制裁仍持续的背沈子瑜亿咖通科技破圈向上,在智能化领域创造无限可能亿咖通科技沈子瑜说随着互联网与移动设备的普及,人们的生活已经进入了智能化时代,工作方式与生活方式也在发生着改变。而在智能化越发普遍的情况下,沈子瑜带领亿咖通科技破圈向上,在汽车智能手机空间不足拯救计划!分享四个手机储存空间清理的大家好我是非凡资源李李昨天给大家带来了几款电脑清理软件,今天来给大家带来四款手机的清理软件,每一款都值得拥有啊,而且实用的很那。不多说了开始吧一。安卓最强清理神器,清理君软件介绍安全屋智能家居欧瑞博细节展现品质这个开关的使用场景挺丰富的,可以说在家里任何地方都能用到。因为欧瑞博MixPad精灵触屏语音开关不仅能在墙面安装,还能搭配支架布置到任意位置,需要充电时用TypeC接口的线充电即可