# 調試器擴展
這一章了解一下就行了。一般也不用修改或擴展這個調試器。
Tracy是一個調試應用程序的好工具。 但是,您有時需要比Tracy提供的更多信息。 您將了解:
1、創建自己的調試器欄面板
2、創建自己的Bluescreen擴展
# 調試器條擴展
為Debugger Bar創建新擴展很簡單。 您需要使用getTab()和getPanel()方法來實現Tracy \ IBarPanel接口。 方法必須返回選項卡(調試器欄上的小標簽)和面板(在單擊選項卡后顯示的彈出窗口)的HTML代碼。 如果getPanel()不返回任何內容,將只顯示選項卡。 如果getTab()不返回任何內容,則不顯示任何內容,getPanel()將不會被調用。
~~~
class ExamplePanel extends Nette\Object implements Tracy\IBarPanel
{
public function getTab()
{
return ...;
}
public function getPanel()
{
return ...;
}
}
~~~
## 注冊
注冊通過調用Tracy \ Bar :: addPanel():
~~~
Tracy\Debugger::getBar()->addPanel(new ExamplePanel);
~~~
或者可以在應用程序配置中簡單地注冊您的面板:
~~~
tracy:
bar:
- ExamplePanel
~~~
## 標簽HTML代碼
看起來像這樣:
~~~
<span title="Explaining tooltip">
<img src="data:image/png;base64,<encoded thumbnail image>" />
Title
</span>
~~~
對于編碼圖像,您可以使用Nette \ Templating \ DefaultHelpers :: dataStream()。 如果您不需要工具提示,您可以離開<span>出。
## 面板HTML代碼
看起來像這樣:
~~~
<h1>Title</h1>
<div class="nette-inner">
... content ...
</div>
~~~
標題應與標簽中相同,或包含其他信息。
一個擴展可以注冊多次,因此建議不要使用id屬性來設置樣式。 您可以使用類,最好使用nette-addons- <class-name> [ - <optional>]格式。 當創建CSS時,最好使用#nette-debug .class,因為這樣的規則比reset具有更高的優先級。
## 默認樣式
在面板中,元素<a>,<table>,<pre>,<code>有默認樣式。 您還可以對隱藏元素使用.nette-hidden和.nette-collapsed。 要創建用于隱藏或顯示其他元素的鏈接,請使用rel和id屬性連接它們。
~~~
<a href='#' rel='#nette-addons-className-{$counter}'>Details ►</a>
<div id="nette-addons-className-{$counter}">...</div>
~~~
使用靜態計數器來防止一頁上出現重復的ID。
## 藍屏擴展
您可以添加您自己的異常可視化(替代實現IDebugPanel)或面板,它將出現在(紅色)藍屏上。
擴展如下:
~~~
Tracy\Debugger::getBlueScreen()->addPanel(function($e) { // catched exception
return [
'tab' => '...Title...',
'panel' => '...content...',
];
});
~~~
如果匿名函數不返回任何內容,則不會顯示面板。 該函數被調用兩次。 第一次在參數$ e中捕獲異常,并且面板顯示在藍屏頂部。 第二次在$ e中給出NULL,并且面板顯示在底部。 您可以通過在數組中返回“bottom”=> true強制在底部進行渲染。 函數將不會渲染前兩次,并將使用NULL參數調用第三次。
- Nette簡介
- 快速開始
- 入門
- 主頁
- 顯示文章詳細頁
- 文章評論
- 創建和編輯帖子
- 權限驗證
- 程序員指南
- MVC應用程序和控制器
- URL路由
- Tracy - PHP調試器
- 調試器擴展
- 增強PHP語言
- HTTP請求和響應
- 數據庫
- 數據庫:ActiveRow
- 數據庫和表
- Sessions
- 用戶授權和權限
- 配置
- 依賴注入
- 獲取依賴關系
- DI容器擴展
- 組件
- 字符串處理
- 數組處理
- HTML元素
- 使用URL
- 表單
- 驗證器
- 模板
- AJAX & Snippets
- 發送電子郵件
- 圖像操作
- 緩存
- 本土化
- Nette Tester - 單元測試
- 與Travis CI的持續集成
- 分頁
- 自動加載
- 文件搜索:Finder
- 原子操作