1.1 介绍
福哥的tfums项目的配置文件其实就是一个php程序文件,使用php程序文件作为项目的配置文件虽然更加灵活,但是感觉上差一点。
java项目使用xml作为项目的配置文件,xml格式可以容纳更复杂的配置参数,阅读起来也很清晰,但是php读取xml格式的文档有点先天不足,xml格式无法转换为php的数组,而且php解析xml格式的效率也不高。
php语言解析器的配置文件是ini格式的文件,ini格式不如xml格式可以适应更为复杂的配置参数,但是它也足够使用了,最关键是的php解析ini格式非常的方便,一个par_ini_file函数便可以将ini文档里面的配置参数转换为一个php的数组,由于是内建函数效率还有保障,就是它了~~
福哥先给出现在的tfums项目的配置文件,这是一个标准的php程序文件,里面通过tfconfig对象设置项目参数。
2.1 配置文件
utfphpdatabasqltfdo;utfphpsystemtflog;utfphpsystemtfconfig;tfconfig::t("default",array('driver'=>tfdo::t_mysql,'host'=>"mysql",'port'=>3306,'ur'=>"tfums",'pass'=>"abcdef",'db'=>"tfums",'chart'=>"utf8",),"tfdo");tfconfig::t("default",array('host'智利红玫瑰=>"redis",'port'=>6379,'pass'=>"tongfu.net",'db'=>"tfums",),"tfredis");tfconfig::t("default",array('host'=>"elasticarch",'port'=>9200,'db'=>"tfums"),"tfelasticarch");tfconfig::t("chart","utf-8","system");tfconfig::t("domain","192.168.1.168","system");tfconfig::t("apiurl","http://php-nginx-tfums/api/","system");tfconfig::t("outurl","http://192.168.1.168/tfums/","system");tfconfig::t("bauri","/","system");tfconfig::t("systemloglevel",tflog::t_info,"system");tfconfig::t("projectaespk",md5("福哥的tfums系统基于tfphp框架"),"system");tfconfig::t("smtpargs",array('host'=>"smtp.tongfu.net",'port'=>25,'ur'=>"tfums@tongfu.net",'pwd'=>"cba321",'email'=>"tfums@tongfu.net"),"system");tfconfig::t("imagedirargs",array("dirs"=>array("img3"=>array("path"=>"/tongfu.net/web/tfhomeimg3/","requesturi"=>"/img3/")),"default"=>"img3"),"system");tfconfig::t("defaulturimages",array('icon'=>"/images/uricon.jpg",'style'=>"/images/urstyle.jpg",),"system");tfconfig::t("bindemailtemplateargs",array('subject'=>"亲爱的{urname},请激活你的tfums系统账号的绑定邮箱",'body'=>"亲爱的{urname},你好!<br/><br/>请点击下面的链接完成邮箱绑定操作!<br/><br/><ahref="{link}"target="_blank">{link}</a><br/><br/>tfums<br/>tfums@tongfu.net<br/>"),"system");
2.2 数据源
这个里面有三个数据源,分别是mysql数据源、redis数据源和es数据源,它是一个数组形式。
tfconfig::t("default",array('driver'=>tfdo::t_mysql,'host'=>"mysql",'port'=>3306,'ur'=>"tfums",'pass'=>"abcdef",'db'=>"tfums",'chart'=>"utf8",),"tfdo");tfconfig::t("default",array('host'=>"redis",'port'=>6379,'pass'=>"tongfu.net",'db'=>"tfums",),"tfredis");tfconfig::t("default",array('host'=>"elasticarch",'port'=>9200,'db'=>"tfums"),"tfelasticarch");
2.3 环境参数
这里是一个系统环境参数,都是一些简单字符串参数。
tfconfig::t("chart","utf-8","system");tfconfig::t("domain","192.168.1.168","system");tfconfig::t("apiurl","http://php-nginx-tfums/api/","system");tfconfig::t("outurl","http://192.168.1.168/tfums/","system");tfconfig::t("bauri","/","system");tfconfig::t("systemloglevel",tflog::t_info,"system");tfconfig::t("projectaespk",md5("福哥的tfums系统基于tfphp框架"),"system");
2.4 功能参数
功能参数针对的一些系统功能的参数,一般情况下都是数组类型的参数,甚至还会有多级参数。
tfconfig::t("smtpargs",array('host'=>"smtp.tongfu.net",'port'=>25,'ur'=>"tfums@tongfu.net",'pwd'=>"cba321",'email'=>"tfums@tongfu.net"),"system");tfconfig::t("imagedirargs",array("dirs"=>array("img3"=>array("path"=>"/少儿户外拓展tongfu.net/web/tfhomeimg3/","requesturi"=>"/img3/")),"default"=>"img3"),"system");tfconfig::t("defaulturimages",array('icon'=>"/images/uricon.jpg",'style'=>"/images/urstyle.jpg",),"system");tfconfig::t("bindemailtemplateargs",array('subject'=>"亲爱的{urname},请激活你的tfums系统账号的绑定邮箱",'body'=>"亲爱的{urname},你好!<br/><br/>请点击下面的链接完成邮箱绑定操作!<br/><br/><ahref="{link}"tar哈佛风雨路get="_blank">{link}</a><br/><br/>tfums<br/>tfums@tongfu.net<br/>"),"system");
ini格式虽然也可以通过ction和key、value实现一个二维数组的结构,但是ini格式毕竟没有php语言那样的自由。所以福哥要将tfums项目的配置文件转换为ini格式需要一些技巧。
3.1 配置文件
[tfdo]default[driver]=mysqldefault[host]=mysqldefault[port]=3306default[ur]=rootdefault[pass]=abcdefdefault[db]=tfumsdefault[chart]=utf8[tfredis]default[host]=redisdefault[port]=6379default[pass]=tongfu.netdefault[db]=tfums[tfelasticarch]default[host]=elasticarchdefault[port]=9200default[db]=tfums[system]chart=utf-8domain=192.168.1.168apiurl=http://php-nginx-tfums/api/outurl=/d/file/titlepic/uricon.jpgdefaulturimages[style]=/images/urstyle.jpgbindemailtemplate[subject]=亲爱的{urname},请激活你的tfums系统账号的绑定邮箱bindemailtemplate[body]="亲爱的{urname},你好!<br/><br/>请点击下面的链接完成邮箱绑定操作!<br/><br/><ahref="{link}"target="_blank">{link}</a><br/><br/>tfums<br/>tfums@tongfu.net<br/>"
名言名句3.2 数据源
ini文档可以通过ction和key实现一个二维数组结构,这个和php的group+数组格式相符合,没有问题!
ini文档的key也可以用方括号设置数组格式,par_ini_file函数会把它转换成一个数组参数。
[tfdo]default[driver]=mysqldefault[host]=mysqldefault[port]=3306default[ur]=rootdefault[pass]=abcdefdefault[db]=tfumsdefault[chart]=utf8[tfredis]default[host]=redisdefault[port]=6379default[pass]=tongfu.netdefault[db]=tfums[tfelasticarch]default[host]=elasticarchdefault[port]=9200default[db]=tfums
3.3 环境参数
环境参数大多数参数都是一个字符串,可以直接设置。还有imagedirargs是一个多为数组,这个ini格式搞不定了。
福哥的解决方法是将多维数组拆开为多个参数,当然相应的项目里的程序也要做改动才行。
chart=utf-8domain=192.168.1.168apiurl=http://php-nginx-tfums/api/outurl=/d/file/titlepic/uricon.jpgdefaulturimages[style]=/images/urstyle.jpgbindemailtemplate[subject]=亲爱的{urname},请激活你的tfums系统账号的绑定邮箱bindemailtemplate[body]="亲爱的{urname},你好!<br/><br/>请点击下面的链接完成邮箱绑定操作!<br/><br/><ahref="{link}"target="_blank">{link}</a><br/><br/>tfums<br/>tfums@tongfu.net<br/>"
3.5 ini转php数组
这个比较简单,就是一行代码的事情。
$webiniarr=par_ini_file(web_inf_root_path.'conf/web.ini',true);
转换后的php数组是这样的结构。
今天福哥带着童鞋们将tfums项目的配置文件从一个php格式的程序文件改造成了ini格式的文档,使用ini文档后的配置文件看起来更加像一个配置文件了,ini文档更加独立,可读性更好。
本文发布于:2023-04-05 10:43:14,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/a1da26cde0de277118bd52e5312b95e5.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:php开发文档怎么写(php扩展开发参考手册).doc
本文 PDF 下载地址:php开发文档怎么写(php扩展开发参考手册).pdf
留言与评论(共有 0 条评论) |