簡介
ThinkPHP是一個快速、簡單的基於MVC和物件導向的輕量級PHP開發框架,遵循Apache2開源協議發布,從誕生以來一直秉承簡潔實用的設計原則,在保持出色的性能和至簡的程式碼的同時,尤其註重開發體驗和易用性,並且擁有眾多的原創功能和特性,為WEB應用開發提供了強有力的支援。
目錄結構
ThinkPHP最新版本可以在官方網站(http://thinkphp.cn/down/framework.html)或Github(https://github.com/liu21st/thinkphp/downloads)下載。
把下載後的壓縮檔案解壓縮到你的WEB目錄(或任何目錄都可以),框架的目錄結構為:
├─ThinkPHP.php 框架入口檔案
├-Common 框架入口檔案
├框架─ Conf 框架設定檔
├─Extend 框架擴充目錄
├─Lang 核心語言套件目錄
├─Lib 核心類別庫目錄
│ ├─Driver 內建驅動程式│ │ ├─Cache 內建快取驅動程式│ │ 內建標籤驅動│ │ └─Template 內建範本引擎驅動程式│ └─Template 內建模板引擎└─Tpl 系統範本目錄注意,框架的公共入口檔案ThinkPHP.php是不能直接執行的,該檔案只能在專案入口檔案中調用說到),這是很多新手很容易犯的錯誤。 入口文件在開始之前,你需要一個Web伺服器和PHP運行環境,如果你暫時還沒有,我們推薦使用集成開發環境WAMPServer(是一個集成了Apache、PHP和My支援多個PHP版本、MySQL版本和Apache版本的切換)來使用ThinkPHP進行本機開發和測試。
接下來我們先在WEB根目錄下面建立一個app子目錄(這個app是我們的專案名稱),然後在目錄下方建立一個index.php文件,加入一行簡單的程式碼:
require '/ThinkPHP框架所在目錄/ThinkPHP.php';
然後,在瀏覽器中存取這個入口檔案。
http://localhost/app/
一般Web伺服器的預設檔案是index.php,所以我們可以不需要在URL位址中加上index.php。運作後我們會看到歡迎頁面,
自動產生了專案目錄,目錄結構如下:
├─index.php 專案入口檔案專案
專案
├專案。目錄├─Lang 專案語言目錄├─Lib 專案類別庫目錄│ ├─Action Action類別庫目錄庫目錄
│ └─Widget Widget類別庫目錄
├─Runtime 專案執行時目錄
│ ├─Cache 模板快取
│ └─Temp臨時快取目錄
└─Tpl 專案範本目錄
如果你希望專案的入口檔案移動到app目錄的外面,那麼只需要修改入口檔案index.php的內容為:
define(' APP_NAME','app');
define('APP_PATH','./app/');
require '/ThinkPHP框架所在目錄/ThinkPHP.php';
APP_NAMEAPP_PATHPATH部分。名和項目目錄,項目名通常是指項目的目錄名稱。
移動並修改完專案的入口檔案後,我們就可以透過http://localhost/存取app專案了。當然你也可以在Web根目錄下面建立多個子目錄來部署多個專案。 配置每個專案都有獨立的設定檔(位於專案目錄的Conf/config.php),設定檔的定義格式皆採用PHP傳回陣列的方式,例如:
// 專案設定檔
return array(
'設定參數' => '設定值',
// 較設定參數
。通常我們提到的新增設定項目,就是指在項目設定檔中加入:
'設定參數' => '設定值',
設定值可以支援包括字串、數字、布林值和陣列在內的數據,通常我們建議配置參數均使用大寫定義。如果有需要,我們也可以為專案定義其他的設定檔。
控制器
需要為每個模組定義一個控制器類,控制器類別的命名規範是:模組名稱+Action.class.php (模組名稱採用駝峰法並且首字母大寫)
系統的預設模組是Index,對應的控制器就是專案目錄下面的Lib/Action/IndexAction.class.php,類別名稱和檔案名稱一致。預設操作是index,也就是控制器的一個public方法。初次產生專案目錄結構的時候,系統已經預設產生了一個預設控制器(就是之前看到的歡迎頁面),我們把index方法改成下面的程式碼:class IndexAction extends Action {
public function ){
echo 'hello,world!';
}
}
控制器必須繼承多個操作方法。如果你的操作方法是protected或private類型的話,是無法直接透過URL存取到該操作的。
URL請求
入口文件是項目的單一入口,對項目的所有請求都定向到項目的入口文件,系統會從URL參數中解析當前請求的模組和操作,我們之前訪問的URL地址中沒有任何參數,因此系統會存取預設模組(Index)的預設操作(index),因此下面的存取和之前是等效的:
http://localhost/app/index.php/Index/index
這種URL模式就是系統預設的PATHINFO模式,不同的URL模式取得模組和操作的方法不同,ThinkPHP支援的URL模式有四種:普通模式、PATHINFO、REWRITE和相容模式。普通模式:也就是傳統的GET傳參方式來指定目前存取的模組和操作,例如:
http://localhost/app/?m=module&a=action&var=value
m參數表示模組,a操作表示操作(模組和操作的URL參數名稱是可以設定的),後面的表示其他GET參數。 PATHINFO模式:是系統的預設URL模式,提供了最好的SEO支持,系統內部已經做了環境的兼容處理,所以能夠支援大多數的主機環境。對應上面的URL模式,PATHINFO模式下面的URL存取位址是:
http://localhost/app/index.php/module/action/var/value/
PATHINFO位址的第一個參數表示模組,第二個參數表示操作。
PATHINFO模式下面,URL是可自訂的,例如,透過下面的配置:'URL_PATHINFO_DEPR'=>'-', // 更改PATHINFO參數分隔符號
我們還可以支援下面的URL存取:http
如果是Apache則需要在入口文件的同級添加.htaccess文件,內容如下:
RewriteEngine on
例如:
要輸出視圖,必須在控制器方法中進行模板渲染輸出操作,例如:
class IndexAction extends Action {
// 進行模板變數賦值
$this->display();
}
}
display方法中我們沒有指定任何模板,所以按照系統預設的定義了模板,所以按照系統預設值/html/html。
接下來,我們在瀏覽器中輸入http://localhost/app/瀏覽器中會輸出hello,thinkphp!
中建立一個think_data資料表(以mysql資料庫為例):
>
'DB_USER ' => 'root', // 使用者名稱'DB_PWD' => '', // 密碼'DB_PORT' => 33306,0/// // 資料庫表前綴或採用以下設定'DB_DSN' => 'mysql://root@localhost:3306/thinkphp'使用DB_DSN方式定義可以簡化設定參數,DSN參數格式為:資料庫類型://使用者名:密碼@資料庫位址:資料庫連接埠/資料庫名稱如果兩種設定參數同時存在的話,DB_DSN設定參數優先。 接下來,我們修改下控制器方法,新增讀取資料的程式碼:class IndexAction extends Action { public function Data資料模型 $this->data = $Data->select(); $ inkPHP內建的實例化模型的方法,而且用M方法實例化模型不需要創建對應的模型類,你可以理解為M方法是直接在操作底層的Model類,而Model類具備基本的CURD操作方法。M('Data') 實例化後,就可以對think_data資料表(think_ 是我們在專案設定檔中定義的資料表前綴)進行操作(包括CURD)了,M函數的用法還有很多,我們以後會深入了解。
定義好控制器後,我們修改範本文件,新增資料輸出標籤如下:
/html>volist標籤是內建模板引擎用於輸出資料集的標籤。 {$vo.id} 和 {$vo.data} 的用法和Smarty類似,就是用於輸出資料的字段,這裡就表示輸出think_data表的id和data字段的值。
我們訪問
http://localhost/app/
會輸出
1--thinkphp
2--php
3--framework
如果你看到了上面的輸出結果,那麼你已經恭喜你已經拿到了入門ThinkPHP的鑰匙!
總結
本篇我們學習了ThinkPHP的目錄結構、URL模式和如何建立專案的入口檔案和控制器、模板,後面會繼續了解對資料的CURD操作。
以上就是ThinkPHP3.1快速入門(1)基礎的內容,更多相關內容請關注PHP中文網(www.php.cn)!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

禪工作室 13.0.1
強大的PHP整合開發環境

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境