視頻學習筆錄---ThinkPHP---thinkphp拓展之空操作
【一】概論
(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拓展之空操作