第十四章:第4节thinkPHP框架——创建模块

更新于:2018-01-17 19:47:32

“public”目录没有太多东西需要讲,从这节开始讲“application”目录。我们以后的工作,写的代码主要放在“application”目录里。


TP框架把“public”目录作为对外的部署目录,“application”目录并没有作为子目录放入“public”,TP框架这样做,好处是更安全了!“application”目录的PHP文件不会因在浏览器输入文件名被直接访问到,确保了程序的每一个PHP文件都是通过入口文件进入,层层处理,最后到达(执行)目标代码。


1.png

别看现在“application”目录也没有多少文件,随着我们项目代码越来越多,“application”目录下的文件也会越来越多。


下面开始我们的第一步:创建模块


目录中有“extra”、“index”两个目录,“extra”没用过,不管它;“index”是TP框架预先设置好的一个默认模块,我不喜欢叫“index”,把它改成“home”。顺便再添加“admin”、“common”两个模块。


注:“common”模块是公共模块。


1.png

在模块目录中可以有哪些文件和目录:


1.png


config.php 专属这个模块的配置文件。在“application”目录中也有config.php配置文件,这是全局配置文件。当请求某模块时,TP框架先去访问全局配置文件,再访问模块配置文件。全局配置文件与模块配置文件参数有重名时,以模块配置文件的参数为准。


common.php 专属这个模块的函数库文件。在“application”目录中也有common.php函数库文件,这是全局函数库,每个模块都可以调用全局函数库里的函数。但是模块之间的函数库不能相互调用,即:home模块函数库的函数,admin模块的代码无法调用。模块函数库的函数与全局函数库的函数重名会报错误,除非定义函数时加个if判断:


1.png


这样虽然不报错了,可全局函数库已有的函数,模块函数库将无法重新定义。


controller 专属这个模块的控制器目录;

model 专属这个模块的模型目录;

view 专属这个模块的视图目录;


除了“common”模块,楠神通常在模块中只用到“controller”、“view”这两个目录,我不喜欢为每个模块单独做配置、写函数。在我的一些项目中,我会根据业务需要写多个配置文件、函数库文件,自己写代码引入到TP框架中(这个地方后面的章节再介绍)。


除了“common”模块,楠神在模块中也不使用“model”模型目录,而是在“common”模块建模型目录,把模型文件只写到“common”模块,这样其他模块可以共同使用。可能有些朋友对模型不是很熟悉,后面会详细介绍到。


1.png


根据前面第十一章的内容,大家对控制器(controller)和视图(view)有所了解了吧,为大家创建一个控制器:


1.png


1.png

在浏览器输入下面的URL

http://您的域名/模块名称/控制器名称/方法名称


1.png

这样就成功实现了网站的第一个页面。


下节我们开始对控制器做详细介绍。


本节学习代码》》》