第十四章:第10节thinkPHP框架——定义函数

更新于:2018-01-08 18:35:24


模块的控制器与视图先讲这些,再次回到“application”目录,讲解下这几个文件的作用。


“.htaccess”做访问限制的,不用修改。


“command.php”命令行工具配置文件,楠神没用过TP框架的命令行,不介绍了。


“tags.php”应用行为扩展定义文件,没用过,不做介绍。


楠神主要讲解剩下的这四个文件。


common.php文件


这是全局函数库文件,我们自定义的函数可以写在这个文件中。


不过楠神不推荐直接在这个文件写函数,为什么呢?


不符合我的风格,我不喜欢这么没有结构。


随着项目越来越大,定义的函数会越来越多,就会造成这个文件的代码达到好几千行。以后阅读起来困难,甚至不易记得都写过哪些函数了。


楠神也不愿意使用模块函数库文件,既然定义了函数,肯定是想在任何模块都能使用。


通常楠神会按照函数的某个共同点对其分类到不同的文件中,然后在common.php中用require_once引入。


根据我以往的经验,建议把函数分成这五类:


第一类:普通函数,函数不受框架的限制,复制到别地也可以使用。


第二类:拓展函数,方便TP框架使用做的拓展,离开TP框架(本程序)不能使用的函数。


第三类:SQL函数,操作数据库的函数。


第四类:缓存函数,操作缓存数据的函数。


第五类:环境函数,根据运行环境不同定义的函数体会有所不同的函数。


1.png


1.png


也许大家不明白楠神为什么这样分类,这完全是个人经验总结。大家也可以按自己的想法去分类。


我们先定义两个函数,看看是否能正常使用。


1.png


注:dump函数是TP框架的函数,楠神再次做了下改造。


1.png


在控制器方法中使用这两个函数


1.png

看结果可以正常使用e_dumps和e_dump函数。


在以后的讲解中,楠神会不断地在这几个文件中定义函数。


还有一点:定义函数时,每种分类的函数名最好加上一个前缀,防止出现重名的情况。根据前缀我们也可以迅速找到某某函数属于哪一分类。


额外说明:


还记得在public/index.php入口文件定义的一个“ENV”常量吧



假如目前的环境是线下测试开发环境,我们把它赋值为“offline”;如果是线上正式运行的环境,把它赋值为“online”。楠神定义的这个常量作用很大的,可以有效避免线上线下冲突。


是这样的。打个比方:


一个系统使用第三方接口,需要用账号(和密钥)请求他们的接口。我们在写对接程序时,对方也肯定会给我们一个测试账号(和密钥)。楠神以前都是手动修改两种账号,粗心大意的时候经常会发生,比如本地代码(测试环境)中账号是测试账号,上传到正式环境前忘记修改过来,或者误传了,这样就会造成正式环境出错。


为了不让正式账号与测试账号在频繁交换使用中弄混了,可把两个账号都写到代码中,用这个常量做个环境判断。


本节学习代码》》》