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