模塊與操作是 ThinkPHP 中的核心部分,所有的核心邏輯都在這里實現(xiàn)!ThinkPHP 模塊進入 Myapp\\Lib\\Action 目錄,里面有個 IndexAction.class.php 文件。該文件為剛才我們運行入口文件 index.php 時系統(tǒng)自動生成的。打開該文件,其內(nèi)容大致如下(方法內(nèi)具體代碼省略): <?php
// 本類由系統(tǒng)自動生成,僅供測試用途
class IndexAction extends Action{
public function index(){
具體代碼略……
}
}
?>
該文件已經(jīng)演示了一個基于 ThinkPHP 的實際應用。 ThinkPHP 控制器像上面這個 IndexAction.class.php 這樣的特殊文件,稱為控制器。該類文件通常位于 LibAction 下面,命名方式必須以“模塊名+Action.class.php”樣式來命名,如 IndexAction.class.php ,詳細可參考《ThinkPHP 命名規(guī)范》一節(jié)。 ThinkPHP 模塊一個控制器對應一個模塊。如 IndexAction.class.php 就對應 Index 模塊,相應的類名為 IndexAction ,如上面的例子: class IndexAction extends Action ThinkPHP 操作一個模塊(類)里有多個方法,稱之為“操作”。如上面例子的 index 方法: public function index() 我們更改上面的 IndexAction.class.php 為: <?php
class IndexAction extends Action{
public function index(){
header("Content-Type:text/html; charset=utf-8");
echo "第一個例子測試!";
}
}
?>
再次訪問網(wǎng)站首頁(入口文件): http://localhost/index.php 瀏覽器顯示內(nèi)容為在 index 操作中輸出的: 第一個例子測試! 而不是原來的默認歡迎界面。 增加操作要增加一個操作,只需在模塊里增加一個定義為 public 方法即可。在 IndexAction.class.php 里面新增加一個 test 操作: public function test(){
header("Content-Type:text/html; charset=utf-8");
echo "這是 test 操作";
}
要訪問該操作,瀏覽器地址為: http://localhost/index.php/Index/test 瀏覽器輸出如下: 這是 test 操作 可見要訪問其他方法,需要在入口文件 URL 地址后面加上“模塊/操作”才可以。關(guān)于通過入口文件 URL 地址訪問模塊方法的具體信息,請參看《ThinkPHP URL 訪問模式》一節(jié)。 同模塊調(diào)用其他操作在同一個模塊中,一個操作常常要調(diào)用其他操作(一般都是私有方法,通常都是獨立的能被重復使用的功能模塊),由于是在一個模塊里(一個類里),因此使用 $this 可以很方便的調(diào)用其他操作: <?php
class IndexAction extends Action{
public function index(){
header("Content-Type:text/html; charset=utf-8");
echo "第一個例子測試!";
$this->test();
}
}
?>
上面是將前面的 index 操作加上調(diào)用 test 操作的例子,運行 index 操作輸出如下: 第一個例子測試!這是 test 操作 可見不僅 index 里面的 echo 語句執(zhí)行了,test 操作里面的 echo 也執(zhí)行了。這部分是屬于 PHP 類與對象的知識,更多請參見PHP基礎(chǔ)教程之《PHP 類與對象》一節(jié)的內(nèi)容。 跨模塊調(diào)用操作的例子,請參見本節(jié)《ThinkPHP 跨模塊調(diào)用操作方法》一文的內(nèi)容。 小結(jié)
|
|
|