1.入口文件
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請(qǐng)、網(wǎng)頁空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、和布克賽爾蒙古網(wǎng)站維護(hù)、網(wǎng)站推廣。
ThinkPHP采用單一入口模式進(jìn)行項(xiàng)目部署和訪問,無論完成什么功能,一個(gè)項(xiàng)目都有一個(gè)統(tǒng)一(但不一定是唯一)的入口。應(yīng)該說,所有項(xiàng)目都是從入口文件開始的,并且所有的項(xiàng)目的入口文件是類似的,入口文件中主要包括:
2定義框架路徑、項(xiàng)目路徑和項(xiàng)目名稱(可選)
2定義調(diào)試模式和運(yùn)行模式的相關(guān)常量(可選)
2載入框架入口文件(必須)
常量 | 描述 |
THINK_PATH | 框架目錄 |
APP_PATH | 應(yīng)用目錄 |
RUNTIME_PATH | 應(yīng)用運(yùn)行時(shí)目錄(可寫) |
APP_DEBUG | 應(yīng)用調(diào)試模式(默認(rèn)false) |
STORAGE_TYPE | 存儲(chǔ)類型(默認(rèn)為FILE) |
APP_MODE | 應(yīng)用模式(默認(rèn)common) |
注意:所有路徑常量都必須以“/”結(jié)尾
3.自動(dòng)生成目錄
接下來再看原來空的Application
目錄下面,已經(jīng)自動(dòng)生成了公共模塊Common
、默認(rèn)的Home
模塊和Runtime
運(yùn)行時(shí)目錄的目錄結(jié)構(gòu):
Application ├─Common 應(yīng)用公共模塊 │ ├─Common 應(yīng)用公共函數(shù)目錄 │ └─Conf 應(yīng)用公共配置文件目錄 ├─Home 默認(rèn)生成的Home模塊 │ ├─Conf 模塊配置文件目錄 │ ├─Common 模塊函數(shù)公共目錄 │ ├─Controller 模塊控制器目錄 │ ├─Model 模塊模型目錄 │ └─View 模塊視圖文件目錄 ├─Runtime 運(yùn)行時(shí)目錄 │ ├─Cache 模版緩存目錄 │ ├─Data 數(shù)據(jù)目錄 │ ├─Logs 日志目錄 │ └─Temp 緩存目錄
如果你不是Windows環(huán)境下面的話,需要對(duì)應(yīng)用目錄Application
設(shè)置可寫權(quán)限才能自動(dòng)生成。
如果不是調(diào)試模式的話,會(huì)在Runtime目錄下面生成common~runtime.php
文件(應(yīng)用編譯緩存文件)。
4.目錄安全文件
在自動(dòng)生成目錄結(jié)構(gòu)的同時(shí),在各個(gè)目錄下面我們還看到了index.html文件,這是ThinkPHP自動(dòng)生成的目錄安全文件。
為了避免某些服務(wù)器開啟了目錄瀏覽權(quán)限后可以直接在瀏覽器輸入U(xiǎn)RL地址查看目錄,系統(tǒng)默認(rèn)開啟了目錄安全文件機(jī)制,會(huì)在自動(dòng)生成目錄的時(shí)候生成空白的index.html
文件,當(dāng)然安全文件的名稱可以設(shè)置,例如你想給安全文件定義為default.html
可以在入口文件中添加:
define('DIR_SECURE_FILENAME', 'default.html'); define('APP_PATH','./Application/'); require './ThinkPHP/ThinkPHP.php';
如果你的環(huán)境足夠安全,不希望生成目錄安全文件,可以在入口文件里面關(guān)閉目錄安全文件的生成,例如:
define('BUILD_DIR_SECURE', false);
5.控制器
我們可以在自動(dòng)生成的Application/Home/Controller目錄下面找到一個(gè)IndexController.class.php
文件,這就是默認(rèn)的Index控制器文件。
控制器類的命名方式是:控制器名(駝峰法,首字母大寫)+Controller
控制器文件的命名方式是:類名+class.php(類文件后綴)
默認(rèn)的歡迎頁面其實(shí)就是訪問的Home模塊下面的Index控制器類的index操作方法我們修改默認(rèn)的index操作方法如下:
namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index() { echo 'hello,world!'; } }
再次運(yùn)行應(yīng)用入口文件,瀏覽器會(huì)顯示:hello,world!
。
我們?cè)賮砜聪驴刂破黝?,IndexController控制器類的開頭是命名空間定義:
namespace Home\Controller;
這是系統(tǒng)的規(guī)范要求,表示當(dāng)前類是Home模塊下的控制器類,命名空間和實(shí)際的控制器文件所在的路徑是一致的,也就是說:Home\Controller\IndexController
類 對(duì)應(yīng)的控制器文件位于應(yīng)用目錄下面的Home/Controller/IndexController.class.php
,如果你改變了當(dāng)前的模塊名,那么這個(gè)控制器類的命名空間也需要隨之修改。
注意:命名空間定義必須寫在所有的PHP代碼之前聲明,否則會(huì)出錯(cuò)
use Think\Controller;
表示引入 Think\Controller 命名空間便于直接使用。所以,
use Think\Controller;
class IndexController extends Controller
等同于使用:
class IndexController extends \Think\Controller