ThinkPHP 3.2.3快速入門
【目錄列表】簡(jiǎn)單一些大概內(nèi)容如下:
- index.php文件的了解;
- 調(diào)試模式;
- 配置;
- 控制器;
- Url請(qǐng)求;
- 視圖;
- 讀取數(shù)。
- 學(xué)習(xí)參考資料: ThinkPHP3.2.3快速入門;
- 本內(nèi)容屬于方便自己復(fù)習(xí)的以及得瑟的記錄。
- 建議學(xué)習(xí)方式: 大腦CPU無(wú)法超負(fù)荷運(yùn)作,上帝倒是想給你靈感,問(wèn)題是你給淌出休息的時(shí)間啊。
I 、入口文件index.php
首先是index.php(入口文件)的代碼內(nèi)容:
<?php
/* 應(yīng)用入口文件 */
// 檢測(cè)PHP環(huán)境
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
// 開(kāi)啟調(diào)試模式 建議開(kāi)發(fā)階段開(kāi)啟 部署階段注釋或者設(shè)為false
define('APP_DEBUG',True);
// 定義應(yīng)用目錄
define('APP_PATH','./Application/');
// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';
// 親^_^ 后面不需要任何代碼了 就是如此簡(jiǎn)單
ThinkPHP默認(rèn)目錄結(jié)構(gòu): --+
Direcotry:
Application (應(yīng)用目錄)
Public (資源目錄)
ThinkPHP (框架目錄)
Files:
.htaccess((略))
.composer.json (略)
ReadMe.md (略)
index.php (入口文件)
3.2版本開(kāi)始相比之前的版本自帶了一個(gè)完整的應(yīng)用目錄結(jié)構(gòu)(Application)和默認(rèn)的應(yīng)用入口文件(index.php),開(kāi)發(fā)人員可以在這個(gè)基礎(chǔ)之上靈活調(diào)整(目錄名稱和位置)。
其中,Application和Public目錄下面都是空的,而README.md和composer.josn文件僅用于說(shuō)明,實(shí)際部署的時(shí)候可以刪除。
框架核心目錄的結(jié)構(gòu)無(wú)需改變,但框架的目錄名稱(ThinkPHP)可以在應(yīng)用入口文件中隨意更改。
3.2 版本開(kāi)始框架自帶了一個(gè)應(yīng)用入口文件,默認(rèn)內(nèi)容如下(可以參考上面的index.php):
// 代碼的作用就是定義應(yīng)用目錄和加載ThinkPHP框架的入口文件,這是所有基于ThinkPHP開(kāi)發(fā)應(yīng)用的第一步。
define('APP_PATH','./Application/');
require './ThinkPHP/ThinkPHP.php';
先不要去管上面這些內(nèi)容!打開(kāi)瀏覽器 ```http://locahost/thinkphp/index.php`` ,會(huì)出現(xiàn)下面的內(nèi)容:
忘記說(shuō)了,之前Application是沒(méi)有任何內(nèi)容的,當(dāng)運(yùn)行了在瀏覽器運(yùn)行了index.php,Application就自動(dòng)生成了一些內(nèi)容:
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????緩存目錄模塊設(shè)計(jì)
- 由于采用多層的MVC機(jī)制,除了Conf和Common目錄外,每個(gè)模塊下面的目錄結(jié)構(gòu)可以根據(jù)需要靈活設(shè)置和添加,所以并不拘泥于上面展現(xiàn)的目錄。
如果我要添加新的模塊,有沒(méi)有快速生成模塊目錄結(jié)構(gòu)的辦法呢?只需要在入口文件中添加如下定義(假設(shè)要生成Admin模塊):
define('APP_PATH','./Application/'); //綁定入口文件到Admin模塊訪問(wèn)
define('BIND_MODULE','Admin');//如果有需要請(qǐng)將代碼注釋掉,具體理由見(jiàn)下2注意。
require './ThinkPHP/ThinkPHP.php'
- BIND_MODULE常量定義表示綁定入口文件到某個(gè)模塊,由于并不存在Admin模塊,所以會(huì)在第一次訪問(wèn)的時(shí)候自動(dòng)生成。重新訪問(wèn)入口文件后,就會(huì)再次看到歡迎頁(yè)面,這個(gè)時(shí)候在Application下面已經(jīng)自動(dòng)生成了Admin模塊及其目錄結(jié)構(gòu)。
- 注意:生成以后,你需要?jiǎng)h除(或者注釋掉)剛才添加的那段常量定義才能正常訪問(wèn)Home模塊,否則就只能訪問(wèn)Admin模塊(因?yàn)閼?yīng)用入口中已經(jīng)綁定了Admin模塊)。
有些情況下,我們需要更改應(yīng)用目錄、運(yùn)行時(shí)目錄和框架的位置,那么可以修改入口文件如下:
define('APP_PATH','./Apps/'); //定義應(yīng)用目錄
define('RUNTIME_PATH','./Runtime/'); //定義運(yùn)行時(shí)目錄
require './Think/ThinkPHP.php'; //更名框架目錄名稱,并載入框架入口文件
以及該段代碼產(chǎn)生的效果:
WWW WEB部署目錄(或者子目錄)
├─index.php ? 應(yīng)用入口文件
├─Apps????應(yīng)用目錄
├─Public ??? 資源文件目錄
├─Runtime ?? 運(yùn)行時(shí)目錄
└─Think????框架目錄
II、調(diào)試模式 :
ThinkPHP支持調(diào)試模式,默認(rèn)情況下是運(yùn)行在部署模式下面。部署模式下面性能優(yōu)先,并且盡可能少地拋出錯(cuò)誤信息,調(diào)試模式則以除錯(cuò)方便優(yōu)先,關(guān)閉任何緩存,而且盡可能多的拋出錯(cuò)誤信息,所以對(duì)性能有一定的影響。
部署模式采用了項(xiàng)目編譯機(jī)制,第一次運(yùn)行會(huì)對(duì)核心和項(xiàng)目相關(guān)文件進(jìn)行編譯緩存,由于編譯后會(huì)影響開(kāi)發(fā)過(guò)程中對(duì)配置文件、函數(shù)文件和數(shù)據(jù)庫(kù)修改的生效(除非你修改后手動(dòng)清空Runtime下面的緩存文件)。因此為了避免以上問(wèn)題,我們強(qiáng)烈建議新手在使用ThinkPHP開(kāi)發(fā)的過(guò)程中使用調(diào)試模式,這樣可以更好的獲取錯(cuò)誤提示和避免一些不必要的問(wèn)題和煩惱。
開(kāi)啟調(diào)試模式很簡(jiǎn)單,我們只需要在入口文件(index.php)的開(kāi)頭加上一行常量定義代碼:
define('APP_DEBUG', true); // 開(kāi)啟調(diào)試模式
define('APP_PATH','./Application/');
require './ThinkPHP/ThinkPHP.php';
1). 開(kāi)發(fā)完成后,我們實(shí)際進(jìn)行項(xiàng)目部署的時(shí)候,刪除這行常量定義代碼即可,或者改成:define('APP_DEBUG', false);
。
2). 為了安全考慮,避免泄露你的服務(wù)器WEB目錄信息等資料,一定記得正式部署的時(shí)候關(guān)閉調(diào)試模式。