首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ThinkPHP一些默认规则

ThinkPHP一些默认规则

作者头像
PM吃瓜
发布2019-08-13 10:56:08
7660
发布2019-08-13 10:56:08
举报
文章被收录于专栏:PM吃瓜(公众号)PM吃瓜(公众号)

1. 每个应用模块都有独立的配置文件(位于模块目录的Conf/config.php),定义格式默认采用PHP数组定义

2. 为所有模块定义公共的配置文件,可以在公共模块中定义(通常位于 Common/Conf/config.php)

3. 每个控制器定义一个控制器类; 控制器名+Controller.class.php (模块名采用驼峰法并且首字母大写);类名和文件名一致

4. 标准的URL访问格式:http://serverName/index.php/模块/控制器/操作

5. ThinkPHP中的视图主要就是指模板文件和模板引擎

6. 模板文件都在模块的View目录下面,并且是以模块下面的控制器名为目录,然后是每个控制器的具体操作 作为模板文件

7. 默认的找模版规则:View/控制器名/操作名.html;(操作和模版对应关系)

要输出视图,必须在控制器方法中进行模板渲染输出操作,模板输出最常用的是使用display方法,$this->display();表示系统会按照默认规则自动定位模板文件

• 如果当前没有启用模板主题则定位到:当前模块/默认视图目录/当前控制器/当前操作.html ;

• 如果有启用模板主题则定位到:当前模块/默认视图目录/当前主题/当前控制器/当前操作.html;

• 如果有更改TMPL_FILE_DEPR设置(假设 'TMPL_FILE_DEPR'=>'_')的话,则上面的自动定位规则变成: 当前模块/默认视图目录/当前控制器_当前操作.html 和 当前模块/默认视图目录/当前主题/当前控制器_当前操作.html。

8. 如果我们需要读取数据库中的数据,就需要在模块配置文件中添加数据库连接信息。

9. 模型名+Model.class.php (模型名的定义采用驼峰法并且首字母大写)

10. 按照系统的规范来命名模型类的话,大多数情况下是可以自动对应数据表

模型类名字 === 除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,然后加上Model

11. ThinkPHP在没有找到对应操作方法的情况下,会检查是否存在对应的模板文件,由于我们有对应的add模板文件,所以控制器就直接渲染该模板文件输出了。

12. 使用D函数实例化模型类,一般需要对应一个模型类

13. 模版表达式:模块@主题/控制器/操作  默认都是在view文件夹下

14. 在模板文件中输出变量,内置模板的话,就可以这样输出: {$name}

使用PHP本身作为模板引擎的话 ,就可以直接在模板文件里面输出了: <?php echo $name.'['.$email.''.$phone.']'; ?>

15. 模版中使用函数:需要采用 {:U('参数1', '参数2'…)} 的方式

16. Common模块和普通模块一样,可以添加控制器、模型和视图,并且支持多层,但不能直接访问,只能继承,其中模型层可以作为公用模型,在D方法实例化中调用。D函数实例化的时候 才能自动判断 当前模块模型类不存在的时候 实例化公共模块中的同名模型,自己实例化肯定做不到这点了。

回复 @thinkphp : 你的意思是common模块里的控制器、模型和视图有两个作用:1当前模块里的php文件不存在的时候,自动去找公共模块中的同名文件 2.其他模块里的控制器、模型和视图 继承公共模块里的控制器、模型和视图, 总结的对吗?

如果其他模块直接使用common模块,需要加模块名common吗?

thinkphp 回复:

Common模块是一个特殊的模块,是应用的公共模块,访问所有的模块之前都会首先加载公共模块下面的配置文件(Conf/config.php)和公共函数文件(Common/function.php)。但Common模块本身不能通过URL直接访问,公共模块的其他文件则可以被其他模块继承或者调用

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Tech爬虫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档