程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 初識ThinkPHP控制器

初識ThinkPHP控制器

編輯:PHP綜合

本文的重點講解的ThinkPHP控制器的定義、基本操作內容,希望大家可以對ThinkPHP控制器有初步的了解。

最基本的控制器:

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
  public function index(){

  }
  public function hello(){
    echo 'hello';
  }
}

控制器的名稱采用駝峰法命名(首字母大寫),控制器文件位於 Application/Home/Controller/IndexController.class.php

IndexController控制器類的hello方法就是操作方法,訪問下面的URL地址:

http://serverName/Home/Index/hello
 就會輸出"hello"

前置和後置操作:

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {

  public function _before_index(){
    echo "index.before<br>";
  }

  public function index(){
    echo "index<br>";
  }

  public function _after_index(){
    echo "index.after<br>";
  }
}

配置ACTION_SUFFIX改變操作方法書寫方式:

因為操作方法就是控制器的一個方法,所以遇到有和系統的關鍵字沖突的方法可能就不能定義了,這個時候我們可以設置操作方法的後綴來解決,例如

'ACTION_SUFFIX'         =>  'Action', // 操作方法後綴
設置操作方法的後綴為Action,這樣,控制器的操作方法定義調整為:

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
  public function listAction(){
    echo 'list';
  }

  public function helloAction(){
    echo 'hello';
  }

  public function testAction(){
    echo 'test';
  }
}

空控制器和空操作方法:

空操作是指系統在找不到請求的操作方法的時候,會定位到空操作(_empty)方法來執行,利用這個機制,我們可以實現錯誤頁面和一些URL的優化。

上圖所示,當訪問:

http://serverName/index.php/Home/City/beijing/
由於City控制器並沒有定義beijing、shanghai或者shenzhen操作方法,因此系統會定位到空操作方法 _empty中去解析,_empty方法的參數就是當前URL裡面的操作名,因此會看到依次輸出的結果是:

你是怎麼找到我的? 

操作綁定到類: (作用:可以實現為每個操作方法定義一個類,而不是控制器類的一個方法)

以URL訪問為 http://serverName/Home/Index/index為例,

原來的控制器文件定義位置為:Application/Home/Controller/IndexController.class.php

控制器類的定義如下:

namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller{
  public function index(){
    echo '執行Index控制器的index操作';
  }
}

可以看到,實際上我們調用的是 Home\Controller\IndexController 類的index方法。

 通過配置文件設置參數

'ACTION_BIND_CLASS'    =>    True,
設置後,控制器文件位置改為:Application/Home/Controller/Index/index.class.php

控制器類的定義如下:

namespace Home\Controller\Index;
use Think\Controller;
class index extends Controller{
  public function run(){
    echo '執行Index控制器的index操作';
  }
}

現在,我們調用的其實是 Home\Controller\Index\index 類的run方法。
以上就是本文的全部內容,希望對大家學習php程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved