ThinkPHP一些默认规则

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直接访问,公共模块的其他文件则可以被其他模块继承或者调用

原文发布于微信公众号 - Tech爬虫(php_pachong)

原文发表时间:2019-01-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券