【PHP Whoops】錯誤&異常 診斷元件

徐俊發表於2017-05-28

file

【Whoops 簡介】:開發環境中需要顯示錯誤,但是PHP預設顯示的錯誤訊息很難看,而且經常穿插在PHP指令碼的輸出裡,難以閱讀。然而 Whoops 可以改變這種情況,Whoops 是個現代的PHP元件,為PHP錯誤和異常提供了設計精美且易於閱讀的診斷頁面。

【多種格式】:Whoops 的強大還在於它能提供多種型別的錯誤輸出:文字,JSON,XML 等一共5種格式型別

【Packagist】:https://packagist.org/packages/filp/whoops

【GitHub】:https://github.com/filp/whoops

【安裝】:預設使用 Composer 進行安裝,若不會使用 Composer 請參考“【PHP Composer】安裝&使用“

composer require filp/whoops

【使用】:使用 Whoops 十分地簡單,只需將下列程式碼放到引導檔案中即可,這也是最重要的一點:想要捕獲所有的錯誤和異常就必須在程式的開頭就註冊元件,這樣即使是再複雜的框架也能捕獲到具體的錯誤資訊以及位置

$whoops = new \Whoops\Run;
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
$whoops->register();

【示例】:在這個示例中我們先註冊 Whoops 元件,然後故意將程式碼寫錯,目的是為了演示 Whoops 的診斷頁面

<?php
# @ Composer 自動載入器
require 'vendor/autoload.php';
# @ Whoops 元件
$whoops = new \Whoops\Run;
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
$whoops->register();
# @ PHPexcel 函式類呼叫
if( $_POST['EXCEL'] )
{
    $objPHPExcel = APHPExcel_IOFactory::load($_POST['EXCEL']);
    $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
    # @ 輸出結果
    var_dump($sheetData);
}
?>

【輸出】:

【其它格式】:如同上文所說 Whoops 還支援許多其它格式的錯誤輸出

# @ 預設診斷頁面
PrettyPageHandler
# @ 純本文資訊
PlainTextHandler
# @ 錯誤回撥
CallbackHandler
# @ JSON 輸出
JsonResponseHandler
# @ XML 輸出
XmlResponseHandler

【其它示例】:這裡簡單演示下 JSON & XML 格式的錯誤輸出

【JSON】:

# @ JSON 格式
$whoops->pushHandler(new \Whoops\Handler\JsonResponseHandler);
# @ JSON ERROR
{"error":{"type":"Whoops\\Exception\\ErrorException","message":"Class 'APHPExcel_IOFactory' not found","file":"D:\\wamp\\www\\Excel\\DealExcel.php","line":12}}

【XML】:

# @ XML 格式
$whoops->pushHandler(new \Whoops\Handler\XmlResponseHandler);
# @ XML ERROR


【Tips】:歡迎有興趣一起學習進步的朋友新增我的印象筆記賬號:note1071.38f6955@m.yinxiang.com,或者將你的印象筆記賬號發至我的郵箱:ms.work.note.dev@outlook.com

相關文章