当前位置:首页 > 生活百科

php开发文档怎么写(php扩展开发参考手册)

栏目:生活百科日期:2025-01-14浏览:0

1. 介绍

1.1 介绍

福哥的TFUMS项目的配置文件其实就是一个PHP程序文件,使用PHP程序文件作为项目的配置文件虽然更加灵活,但是感觉上差一点。

Java项目使用XML作为项目的配置文件,XML格式可以容纳更复杂的配置参数,阅读起来也很清晰,但是PHP读取XML格式的文档有点先天不足,XML格式无法转换为PHP的数组,而且PHP解析XML格式的效率也不高。

PHP语言解析器的配置文件是INI格式的文件,INI格式不如XML格式可以适应更为复杂的配置参数,但是它也足够使用了,最关键是的PHP解析INI格式非常的方便,一个parse_ini_file函数便可以将INI文档里面的配置参数转换为一个PHP的数组,由于是内建函数效率还有保障,就是它了~~

2. PHP格式配置文件

福哥先给出现在的TFUMS项目的配置文件,这是一个标准的PHP程序文件,里面通过TFConfig对象设置项目参数。

2.1 配置文件

useTFPHPDatabaseSQLTFDO;useTFPHPSystemTFLog;useTFPHPSystemTFConfig;TFConfig::set("default",array('driver'=&>TFDO::T_MYSQL,'host'=&>"mysql",'port'=&>3306,'user'=&>"tfums",'pass'=&>"abcdef",'db'=&>"tfums",'charset'=&>"utf8",),"TFDO");TFConfig::set("default",array('host'=&>"redis",'port'=&>6379,'pass'=&>"tongfu.net",'db'=&>"tfums",),"TFRedis");TFConfig::set("default",array('host'=&>"elasticsearch",'port'=&>9200,'db'=&>"tfums"),"TFElasticsearch");TFConfig::set("charset","UTF-8","system");TFConfig::set("domain","192.168.1.168","system");TFConfig::set("apiUrl","http://php-nginx-tfums/api/","system");TFConfig::set("outUrl","http://192.168.1.168/tfums/","system");TFConfig::set("baseUri","/","system");TFConfig::set("systemLogLevel",TFLog::T_INFO,"system");TFConfig::set("projectAESPK",md5("福哥的TFUMS系统基于TFPHP框架"),"system");TFConfig::set("SMTPArgs",array('host'=&>"smtp.tongfu.net",'port'=&>25,'user'=&>"tfums@tongfu.net",'pwd'=&>"cba321",'email'=&>"tfums@tongfu.net"),"system");TFConfig::set("imageDirArgs",array("dirs"=&>array("img3"=&>array("path"=&>"/tongfu.net/web/TFHomeImg3/","requestUri"=&>"/img3/")),"default"=&>"img3"),"system");TFConfig::set("defaultUserImages",array('icon'=&>"/images/usericon.jpg",'style'=&>"/images/userstyle.jpg",),"system");TFConfig::set("bindEmailTemplateArgs",array('subject'=&>"亲爱的{userName},请激活你的TFUMS系统账号的绑定邮箱",'body'=&>"亲爱的{userName},你好!&<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::set("default",array('driver'=&>TFDO::T_MYSQL,'host'=&>"mysql",'port'=&>3306,'user'=&>"tfums",'pass'=&>"abcdef",'db'=&>"tfums",'charset'=&>"utf8",),"TFDO");TFConfig::set("default",array('host'=&>"redis",'port'=&>6379,'pass'=&>"tongfu.net",'db'=&>"tfums",),"TFRedis");TFConfig::set("default",array('host'=&>"elasticsearch",'port'=&>9200,'db'=&>"tfums"),"TFElasticsearch");

2.3 环境参数

这里是一个系统环境参数,都是一些简单字符串参数。

TFConfig::set("charset","UTF-8","system");TFConfig::set("domain","192.168.1.168","system");TFConfig::set("apiUrl","http://php-nginx-tfums/api/","system");TFConfig::set("outUrl","http://192.168.1.168/tfums/","system");TFConfig::set("baseUri","/","system");TFConfig::set("systemLogLevel",TFLog::T_INFO,"system");TFConfig::set("projectAESPK",md5("福哥的TFUMS系统基于TFPHP框架"),"system");

2.4 功能参数

功能参数针对的一些系统功能的参数,一般情况下都是数组类型的参数,甚至还会有多级参数。

TFConfig::set("SMTPArgs",array('host'=&>"smtp.tongfu.net",'port'=&>25,'user'=&>"tfums@tongfu.net",'pwd'=&>"cba321",'email'=&>"tfums@tongfu.net"),"system");TFConfig::set("imageDirArgs",array("dirs"=&>array("img3"=&>array("path"=&>"/tongfu.net/web/TFHomeImg3/","requestUri"=&>"/img3/")),"default"=&>"img3"),"system");TFConfig::set("defaultUserImages",array('icon'=&>"/images/usericon.jpg",'style'=&>"/images/userstyle.jpg",),"system");TFConfig::set("bindEmailTemplateArgs",array('subject'=&>"亲爱的{userName},请激活你的TFUMS系统账号的绑定邮箱",'body'=&>"亲爱的{userName},你好!&<br/&>&<br/&>请点击下面的链接完成邮箱绑定操作!&<br/&>&<br/&>&<ahref="{link}"target="_blank"&>{link}&</a&>&<br/&>&<br/&>TFUMS&<br/&>tfums@tongfu.net&<br/&>"),"system");

3. INI格式配置文件

INI格式虽然也可以通过section和key、value实现一个二维数组的结构,但是INI格式毕竟没有PHP语言那样的自由。所以福哥要将TFUMS项目的配置文件转换为INI格式需要一些技巧。

3.1 配置文件

&[TFDO]default&[driver]=MySQLdefault&[host]=mysqldefault&[port]=3306default&[user]=rootdefault&[pass]=abcdefdefault&[db]=tfumsdefault&[charset]=utf8&[TFRedis]default&[host]=redisdefault&[port]=6379default&[pass]=tongfu.netdefault&[db]=tfums&[TFElasticsearch]default&[host]=elasticsearchdefault&[port]=9200default&[db]=tfums&[system]charset=UTF-8domain=192.168.1.168apiUrl=http://php-nginx-tfums/api/outUrl=http://192.168.1.168/tfums/baseUri=/systemLogLevel=infoprojectAESPK=86fbd7cec5a89700760c167e85acdab8imageDirsPath&[img3]=/tongfu.net/web/TFHomeImg3/imageDirsRequestURI&[img3]=/img3/imageDirDefault=img3SMTP&[host]=smtp.tongfu.netSMTP&[port]=25SMTP&[user]=tfums@tongfu.netSMTP&[pwd]=cba321SMTP&[email]=tfums@tongfu.netdefaultUserImages&[icon]=/images/usericon.jpgdefaultUserImages&[style]=/images/userstyle.jpgbindEmailTemplate&[subject]=亲爱的{userName},请激活你的TFUMS系统账号的绑定邮箱bindEmailTemplate&[body]="亲爱的{userName},你好!&<br/&>&<br/&>请点击下面的链接完成邮箱绑定操作!&<br/&>&<br/&>&<ahref="{link}"target="_blank"&>{link}&</a&>&<br/&>&<br/&>tfums&<br/&>tfums@tongfu.net&<br/&>"

3.2 数据源

INI文档可以通过section和key实现一个二维数组结构,这个和PHP的group+数组格式相符合,没有问题!

INI文档的key也可以用方括号设置数组格式,parse_ini_file函数会把它转换成一个数组参数。

&[TFDO]default&[driver]=MySQLdefault&[host]=mysqldefault&[port]=3306default&[user]=rootdefault&[pass]=abcdefdefault&[db]=tfumsdefault&[charset]=utf8&[TFRedis]default&[host]=redisdefault&[port]=6379default&[pass]=tongfu.netdefault&[db]=tfums&[TFElasticsearch]default&[host]=elasticsearchdefault&[port]=9200default&[db]=tfums

3.3 环境参数

环境参数大多数参数都是一个字符串,可以直接设置。还有imageDirArgs是一个多为数组,这个INI格式搞不定了。

福哥的解决方法是将多维数组拆开为多个参数,当然相应的项目里的程序也要做改动才行。

charset=UTF-8domain=192.168.1.168apiUrl=http://php-nginx-tfums/api/outUrl=http://192.168.1.168/tfums/baseUri=/systemLogLevel=infoprojectAESPK=86fbd7cec5a89700760c167e85acdab8imageDirArgsPath&[img3]=/tongfu.net/web/TFHomeImg3/imageDirArgsRequestURI&[img3]=/img3/imageDirArgsDefault=img3

3.4 功能参数

功能参数都是一个一个的数组,这个也可以直接转换过来。

这里面有一个特殊的情况,就是邮件模板的正文的一个多行字符串,这个需要用双引号括起来才行,而且内容里面的双引号需要转义一下。

SMTP&[host]=smtp.tongfu.netSMTP&[port]=25SMTP&[user]=tfums@tongfu.netSMTP&[pwd]=cba321SMTP&[email]=tfums@tongfu.netdefaultUserImages&[icon]=/images/usericon.jpgdefaultUserImages&[style]=/images/userstyle.jpgbindEmailTemplate&[subject]=亲爱的{userName},请激活你的TFUMS系统账号的绑定邮箱bindEmailTemplate&[body]="亲爱的{userName},你好!&<br/&>&<br/&>请点击下面的链接完成邮箱绑定操作!&<br/&>&<br/&>&<ahref="{link}"target="_blank"&>{link}&</a&>&<br/&>&<br/&>tfums&<br/&>tfums@tongfu.net&<br/&>"

3.5 INI转PHP数组

这个比较简单,就是一行代码的事情。

$webIniArr=parse_ini_file(WEB_INF_ROOT_PATH.'Conf/web.ini',true);

转换后的PHP数组是这样的结构。

4. 总结

今天福哥带着童鞋们将TFUMS项目的配置文件从一个PHP格式的程序文件改造成了INI格式的文档,使用INI文档后的配置文件看起来更加像一个配置文件了,INI文档更加独立,可读性更好。

“php开发文档怎么写(php扩展开发参考手册)” 的相关文章

免费装修预算软件(在线装修报价器)

前段时间,发小准备装修房子。来到我的办公室向我了解一下房子装修的事情,去年12月份拿到房子,因为没多少钱,所以一直还没有装修。第一次装修,什么都不懂,又怕被坑,...

小米支持无线充电的手机型号(目前支持无线充电的手机推

2021年5月31日小米官宣,小米打破了两项世界纪录,分别是200W有线快充与120瓦无线快充。目前手机上主流快充功率在65W左右,极限机型使用的快充功率在12...

北岳是什么山位于什么地方(中华五岳之北岳的由来)

古往今来,咱们中国人对“山”一直都有特殊的情感,古人云“山不在高有仙则灵”,所以如今很多国人有时间了,甚至是周末,都会选择去更高望远。在我国有几座山一直被世人所...

个人在家创业项目推荐,让你年入百万不是问题

众所周知,人多力量大,创业也是如此,和几个好友一起合伙创业,几个人集资、共同提出创业的意见,总比一个人单干要轻松很多。但是,很多人并不是这么幸运可以找到志同道合...

seo建站教程,seo网站建设需要注意什么

SEO已经成为网站建设的标配。一个好网站不仅要照顾到用户需求,还要符合搜索引擎规则,满足搜索引擎蜘蛛抓取、快照评级、提升关键词排序等。一个合格的优化师必须了解搜...

安卓swf播放软件(自带flash的手机浏览器)

使用Mac电脑时,视频播放器可以说是我们使用频率最高的软件之一了,不管是工作时看视频资料还是在家里看下载好的电影,都需要用到视频播放器,本文中我们就来推荐几款好...

促销策略有哪些,产品促销策略的四大基本形式

传统营销的促销形式主要有四种:广告、销售促进、公关与宣传、人员推销。网络促销是在虚拟市场上进行的促销活动,其促销形式可以归纳成四种:网络广告、网络直销、网上促销...

十段均衡器最美人声效果图(详解车载音响均衡器调节技巧

几乎每一个车主都希望自己的车载音响能够展现最佳的音效,但是往往事与愿违,车载音响中的均衡器难倒了无数车主,调出来的音效也不符合自己。今天指南君就来教一下大家如何...

什么是创业,谈谈你们对创业的认识和理解

人人都在讲创业,人人都希望创业,但创业到底是什么,你有没有深刻的认识?下面我从四个方面来讲一下什么是创业。一.创业是什么?1.创业的定义什么是创业?引用MBA智...

千元机性价比最高的手机(哪款手机性价比高受欢迎)

手机618活动年年有,但是像今年优惠力度那么大还是比较少见,不知道大家发现没有,今年的手机行业发展并不是很“健康”,主要是竞争太激烈了,去年即便是天玑1000P...