ThinkPHP控制器、路由、模板和系统常量
一、ThinkPHP控制器的创建
- 控制器存放在Controller文件夹中
- 命名规范:控制器的名称+Controller.class.php
- 类名和文件的名称要一致
- 类名用帕斯卡命名法
- 尽量区分大小写,windows不区分大小写,但Linux中区分
- ThinkPHP默认的编码是UTF-8的。
- 如果地址中没有写控制器,这默认调用Index控制器,如果没有写方法,则默认调用index方法
命名法:
1、帕斯卡命名法:首字母大写 UserName MyNameIsLiping
2、骆驼命名法:userName _user_name
3、匈牙利命名法:前缀(类别)+名字 radSex txtUsername iIength oStu
二、ThinkPHP的路由
结合U()方法使用
1、普通模式
2、pathinfo模式(ThinkPHP中,默认使用pathinfo模式。)
http://网址/入口文件(index.php)/分组(平台)/控制器/方法
比如:http://localhost/index.php/home/index/index
3、rewrite()重写模式
(1)httpd.conf配置文件中加载了mod_rewrite.so模块
LoadModule rewrite_module modules/mod_rewrite.so
(2)设置Apache
找到以下代码段:
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
将其中的:AllowOverride None 改为 AllowOverride All ,重启httpd服务即可。
(3)确保URL_MODEL设置为2
在 \Application\Common\Conf\config.php 文件下
<?php
return array(
//'配置项'=>'配置值'
'DEFAULT_MODULE' => 'Web', //默认模块
'URL_MODEL' => '2', //URL模式
'SESSION_AUTO_START' => true, //是否开启session
//数据库配置
'DB_TYPE' => 'mysql', // 数据库类型
'DB_HOST' => 'localhost', // 服务器地址
'DB_NAME' => 'hms', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => '', // 密码
'DB_PORT' => '3306', // 端口
'DB_PREFIX' => 'hms_', // 数据库表前缀
);
(4)在入口文件index.php同级目录添加.htaccess文件
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
(5)重启apache
4、兼容模式
参数s=/分组/控制器/方法。
三、定义和调用TP的模板
所有的模板都要放在view文件夹下。
规则:一个控制器对应一个文件夹,一个方法对应一个文件
TP模板的调用
四、TP系统常量
-
__ROOT__:当前网站根目录
-
__APP__:
当前应用(入口文件)地址
-
__SELF__ :当前路径
-
__MODULE__:当前分组(
当前模块的URL地址
) -
__CONTROLLER__:当前控制器
-
__URL__等于__CONTROLLER__
-
__ACTION__:当前方法
-
__INFO__ 当前的PATH_INFO字符串
-
__EXT__ 当前URL地址的扩展名
注:rewrite()重写配置原文转载自:
原文:https://blog.csdn.net/hbiao68/article/details/53173158
原文:https://blog.csdn.net/a1974117511/article/details/46446443