1. 程式人生 > >ThinkPHP的路由模式、除錯

ThinkPHP的路由模式、除錯

我們說路由 的作用相當於現實社會中的郵差,起的是資料轉發的作用。現實的郵差是轉發的信件,而計算機世界中的路由,轉發的是2進位制資料。

在ThinkPHP中,確切的說,路由的作用是將特定的URL請求分發到特定的觸發器上。有人說,這不是MCA應該做的事嗎?的確,在沒有路由以前,這就是MCA的事情,但如果有了路由,則會使MCA失效。

ThinkPHP的路由有兩種模式:一種是混合模式(預設),它的意思是說,如果當前URL找不到相關的路由,就去按MCA進行資料轉發。
另一種是強制模組,它的意思是說,如果當前URL找不到相關路由,就會丟擲異常而中斷程式執行。

2.路由到操作方法:跳過router.php

3.路由到方法儘量不要用

4.路由到閉包函式

5.路由到重定向地址

開啟路由

config.php 有一行,負責路由的開啟。
'url_route_on' => true,,沒錯,預設路由的狀態是開啟的。
所以在這,我們在只啟用混合路由模式的情況下,不需要對配置資訊做任何更改。

配置路由

負責路由的配置檔案為app/route.php

路由規則裡有變數就叫動態路由規則,沒有就叫靜態路由規則

解釋:位址列中輸入demo/lesson.shtml

路由規則可以通過兩種方式配置:第一種為上圖所示;

第二種可以通過陣列方式配置(兩種方式):如下圖所示

1中路由地址比較複雜,2中只有一個路由地址

開啟trace

在config.php中找到
'app_trace' => false,

修改為:
'app_trace' => true,

儲存。

我們可以利用日誌寫入的功能,來檢視一些變數的值。這樣做的是好處是:我們寫完測試變數的程式碼後,並不需要刪除他們。因為他們的資訊只會被列印至控制檯中。使用者並看不到他們。

下面,我們在教師管理的index 觸發器中,利用trace()助手函式在控制檯中列印資訊以測試。

 public function index()
    {
        // 獲取查詢資訊
        $name = Request::instance()->get('name');

        $pageSize = 5; // 每頁顯示5條資料

        // 例項化Teacher
        $Teacher = new Teacher; 
        
        // 列印$Teacher 至控制檯
        trace($Teacher, 'debug');

更改型別為:Console
config.php

   'trace'                  => [
        // 內建Html Console 支援擴充套件
        'type' => 'Console',
    ],

總結:chrome與輸出型別console的組合是我們更願意看到的結果。

在實際的專案開發中,我們也是這樣做的。丟擲異常的同時,進行日誌記錄,這樣當出現錯誤時,我們一是可以通過檢視日誌檔案來定位錯誤的發生位置及原因;二是,可以在config.php中開啟trace,然後在生產環境下通過控制檯來快速檢視錯誤發生的位置資訊。