1.入口文件

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載入框架入口文件(必須)
首先,在服務(wù)器或者本地的Web目錄下面創(chuàng)建一個(gè)App目錄,并且把下載的ThinkPHP框架的ThinkPHP目錄拷貝到App目錄下面,然后在App目錄下面創(chuàng)建一個(gè)index.php文件,該文件就是我們要?jiǎng)?chuàng)建項(xiàng)目的入口文件。
新版的入口文件更加簡(jiǎn)化,默認(rèn)情況下,只需要在該文件中添加一行代碼即可:
require './ThinkPHP/ThinkPHP.php';
然后,我們打開瀏覽器,輸入地址并運(yùn)行:
http://localhost/App/
就會(huì)看到歡迎頁(yè)面:
表示ThinkPHP已經(jīng)成功執(zhí)行,這個(gè)時(shí)候,系統(tǒng)已經(jīng)在App下面自動(dòng)生成了項(xiàng)目相關(guān)目錄,并寫入了初始Action。(注意:如果是類Unix或者Linux環(huán)境下測(cè)試的話,需要對(duì)App目錄設(shè)置可寫權(quán)限,否則無法自動(dòng)生成目錄結(jié)構(gòu))
入口文件中還可以添加系統(tǒng)或者應(yīng)用的常量定義,如果我們的項(xiàng)目需要采用其他的模式運(yùn)行(例如,采用命令行模式運(yùn)行),那么可以定義MODE_NAME如下:
define('MODE_NAME','cli');
如果沒有在項(xiàng)目入口文件中設(shè)置MODE_NAME常量的話,就表示采用系統(tǒng)的標(biāo)準(zhǔn)模式運(yùn)行。由于模式擴(kuò)展可以改變底層的運(yùn)行機(jī)制和行為定義,本手冊(cè)中的內(nèi)容如無特別說明,功能描述均表示運(yùn)行于標(biāo)準(zhǔn)模式下面。
入口文件并不一定都是指index.php 文件,因?yàn)槲覀兛梢詾椴煌捻?xiàng)目創(chuàng)建不同的入口文件,例如,前臺(tái)項(xiàng)目的入口文件為index.php ,后臺(tái)項(xiàng)目的入口文件可能是admin.php。
如果你改變了項(xiàng)目目錄(例如把Application更改為Apps),只需要在入口文件更改APP_PATH常量定義即可:
define('APP_PATH','./Apps/');
require './ThinkPHP/ThinkPHP.php';注意:3.2版本開始無需定義APP_NAME常量。
注意:APP_PATH的定義支持相對(duì)路徑和絕對(duì)路徑,但必須以“/”結(jié)束。
如果你調(diào)整了框架核心目錄的位置或者目錄名,只需要這樣修改:
define('APP_PATH','./Application/');require './Think/ThinkPHP.php';也可以單獨(dú)定義一個(gè)THINK_PATH常量用于引入:
define('APP_PATH','./Application/');
define('THINK_PATH',realpath('../Think').'/');
require THINK_PATH.'ThinkPHP.php';和APP_PATH一樣THINK_PATH路徑定義也必須以“/”結(jié)尾。
給THINK_PATH和APP_PATH定義絕對(duì)路徑會(huì)提高系統(tǒng)的加載效率。
2.入口文件的其他定義
一般不建議在入口文件中做過多的操作,但可以重新定義一些系統(tǒng)常量,入口文件中支持定義(建議)的一些系統(tǒng)常量包括:
| 常量 | 描述 |
| 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)的歡迎頁(yè)面其實(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è)賮砜聪驴刂破黝悾琁ndexController控制器類的開頭是命名空間定義:
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
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
新聞名稱:ThinkPHP學(xué)習(xí)筆記(三)入口-創(chuàng)新互聯(lián)
URL鏈接:http://chinadenli.net/article6/gshig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站內(nèi)鏈、Google、品牌網(wǎng)站制作、做網(wǎng)站、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
營(yíng)銷型網(wǎng)站建設(shè)知識(shí)