2015/10/26

[Tracy] 善用工具 -- Tracy 讓 PHP Debug 變簡單了

過去在開發 PHP 專案, 在除蟲的過程當中, 只能利用有限的錯誤訊息, 加上過去的經驗, 才能一步一步解決 error!

今天有機會學到新工具 Tracy (https://github.com/nette/tracy), 真讓人覺得 Debug PHP 程式變簡單了~

1. Composer 安裝

composer require tracy/tracy

這樣該有的基本 library 就具備了


2. 如何使用?

先將 vendor/autoload.php 這支檔案引用進來

require __DIR__.'/vendor/autoload.php';


加上 Tracy\Debugger::enable(); 就可以馬上使用囉




3. 立馬來試做

來簡單做個小測試 -- 新增 index.php

<?php

require __DIR__.'/vendor/autoload.php';

use Tracy\Debugger;

Debugger::enable();
Debugger::$strictMode = true;

echo test;


故意在第十行出錯, 看看產出的結果畫面


在哪個檔案的哪一行都明確告訴你, 酷不酷?

這個還不是最酷的, 最棒的是可以直接打開編輯器, 並指向錯誤的行數, 這樣 Debug 速度快多了!!



要達成無縫接軌開啟編輯器, 只需要再多做一個步驟就可以啟用 editor:// protocol


Windows 註冊 editor:// protocol

1. 建立 run-editor.js 檔案 (editor 可以設定任何自己喜好的編輯器)

// Sublime
var editor = '"C:\\Program Files\\Sublime Text 3\\sublime_text.exe" "%file%:%line%"';

var url = WScript.Arguments(0);
var match = /^editor:\/\/open\/\?file=(.+)&line=(\d+)$/.exec(url);
if (match) {
    var file = decodeURIComponent(match[1]).replace(/\+/g, ' ');
    var command = editor.replace(/%line%/g, match[2]).replace(/%file%/g, file);
    var shell = new ActiveXObject("WScript.Shell");
    shell.Exec(command.replace(/\\/g, '\\\\'));
}


2. 建立 editor.reg 註冊檔 (記得改成自己的 PATH)

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\editor]
@="URL:editor Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\editor\shell\open\command]
@="wscript \"C:\\PATH\\run-editor.js\" \"%1\""


參考: Opening files in IDE by one click from Tracy's page

Happy Debugging!!!

沒有留言: