1. 程式人生 > >視頻學習筆錄---ThinkPHP---thinkphp拓展之空操作

視頻學習筆錄---ThinkPHP---thinkphp拓展之空操作

ext 定義 emp 針對 場景 優化 訪問 404頁 pty

【一】概論

(1)定義

空操作指系統在找不到指定操作方法的時候。會定位到空操作方法 / 控制器來執行,利用這個機制,我們可以實現錯誤頁面的自定義和URL的優化

(2)場景

常用於錯誤頁面的自定義

(3)一般的系統自帶的錯誤頁面分兩種

①調試 / 開發階段:會顯示出錯誤信息、錯誤位置、當前TP版本

技術分享圖片

②生成階段:顯示錯誤提示、TP版本。安全性相對於之前有所提高,但用戶還是較差

技術分享圖片

(4)空操作

針對以上情況,這時便可以用空操作的機制進行錯誤頁面美化

(5)說明------針對方法和控制器

1. 空操作方法:在控制器裏可以定義一個操作方法,名字叫做_empty();若控制器裏方法找不到時便會執行空操作

2. 空操作控制器:在TP裏存在空控制器,若找不到指定控制器便會訪問空控制器。空控制器文件名為EmptyController.class.php

(6)實現:

1. 空操作方法_empty()

例如控制器EmailController.class.php裏創建空方法_empty(),如果訪問Email控制器下的方法不存在,則調用_empty()方法

註意:只是針對當前控制器的空操作方法

//空方法
        public function _empty(){
            echo "您好,頁面不存在哦^_^,即" . ACTION_NAME . "操作不存在";
        }

此時瀏覽器的URL輸入不存在的模板Email控制器下的index.html模板,瀏覽器報錯提示如下

技術分享圖片

常見的系統常量:http://570109268.iteye.com/admin/blogs/2415438

2. 空控制器EmptyController.class.php

<?php
    namespace Admin\Controller;
    use Think\Controller;
    class EmptyController extends Controller{
        public function _empty(){
            
echo "訪問的頁面不存在,空控制器"; } } ?>

接下來訪問空控制器+空方法,這時會優先調用空控制器的處理方法。如下訪問空控制器aaa,下的空方法aaa

技術分享圖片

(7)案例:用空操作方法實現404頁面的自定義

分析:

第一步:創建空操作控制器和空方法

空控制器EmptyController.class.php;空操作方法:_empty()

第二步:展示靜態頁

將錯誤模板頁面復制到指定位置Application\Admin\View\Empty\error.html,修改靜態資源路徑

第三步:

在空控制器中的空操作方法,展示錯誤的模板頁面

①EmptyController.class.php:

<?php
    namespace Admin\Controller;
    use Think\Controller;
    class EmptyController extends Controller{
        public function _empty(){
            $this->display(‘Empty/error‘);//錯誤頁面的展示
        }
    }
?>

②當控制器存在,方法不存在時會訪問該控制器下的_empty()方法

例如訪問Email控制器下的aaa方法,此時會調用Email控制器下的_empty方法。所以還要對該方法進行修改

EmailController.class.php:

//空方法
        public function _empty(){
            // echo "您好,頁面不存在哦^_^,即" . ACTION_NAME . "操作不存在";
            $this->display(‘Empty/error‘);
        }

.

視頻學習筆錄---ThinkPHP---thinkphp拓展之空操作