phalcon-debugbarPhalcon 擴(kuò)展包
PhalconDebugbar 這個(gè)擴(kuò)展包將 PHP Debug Bar 與 Phalcon FrameWork 集成在了一起.
要感謝 laravel-debugbar, 我從中得到了啟發(fā), 使用了其中的一些代碼, 經(jīng)過(guò)幾天夜以繼日的工作, PhpDebugbar 終于可以用在Phalcon項(xiàng)目上了!
我在 Mac/PHP5.6/Phalcon 1.3.4 之下開(kāi)發(fā), 時(shí)間關(guān)系, 只在PHP5.4/Linux下測(cè)試通過(guò), 其他環(huán)境尚未測(cè)試, 如果有問(wèn)題, 歡迎提Issue或者Pull Reqeust.
注意: 這是一個(gè)開(kāi)發(fā)輔助擴(kuò)展, 切勿部署生產(chǎn)環(huán)境.
功能特性
常規(guī)請(qǐng)求調(diào)試信息收集
Ajax請(qǐng)求調(diào)試信息收集
Redirect請(qǐng)求調(diào)試信息
調(diào)試信息本地持久化支持
支持 多模塊,單模塊,微應(yīng)用.
支持收集的調(diào)試數(shù)據(jù)
MessagesCollector : 收集自己發(fā)送的調(diào)試數(shù)據(jù)
TimeDataCollector : 收集時(shí)間計(jì)算信息
MemoryCollector : 請(qǐng)求的內(nèi)存占用
ExceptionsCollector : 異常信息收集
QueryCollector: 收集所有SQL查詢, 每條SQL的執(zhí)行時(shí)間, SELECT語(yǔ)句的EXPLAIN信息
RouteCollector: 收集當(dāng)前路由的相關(guān)信息
ViewCollector: 收集當(dāng)前請(qǐng)求渲染的所有模板, 每個(gè)模板的渲染耗時(shí), 賦值到視圖的視圖變量
PhalconRequestCollector: 收集請(qǐng)求頭信息, 請(qǐng)求數(shù)據(jù), 解密后的cookie, RAW BODY, 以及響應(yīng)頭信息
ConfigCollector: 收集 config service中的數(shù)據(jù).
SessionCollectior 收集session數(shù)據(jù)
SwiftMailCollector 收集郵件發(fā)送信息
安裝package
composer 安裝
php composer.phar require --dev snowair/phalcon-debugbar
下載安裝
下載后, 將package放在項(xiàng)目下, 在你的項(xiàng)目的loader注冊(cè)代碼區(qū)域, 注冊(cè)debugbar的命名空間:
$loader = new \Phalcon\Loader(); $loader->registerNamespaces(array( 'Snowair\Debugbar' => 'Path-To-PhalconDebugbar', )); $loader->register();
設(shè)置
為了支持ajax調(diào)試和重定向調(diào)試, debugbar默認(rèn)開(kāi)啟了調(diào)試數(shù)據(jù)持久化功能, 它會(huì)將收集到的調(diào)試信息以json文件保存在Runtime/phalcon目錄下,如果該目錄不存在,會(huì)試圖創(chuàng)建, 這需要你的項(xiàng)目目錄可寫(xiě), 否則將拋出warning錯(cuò)誤. 建議手動(dòng)創(chuàng)建Runtime目錄并設(shè)置可寫(xiě). 你也可以修改配置文件,使用其他目錄進(jìn)行持久化.
將應(yīng)用實(shí)例保存為app服務(wù)
在合適的位置插入下面的代碼, 通常應(yīng)該在所有服務(wù)都注冊(cè)完以后的位置.
將包內(nèi)
config/debugbar.php文件復(fù)制到你的項(xiàng)目配置目錄下, 修改后使用:
建議使用自己的debugbar配置文件, 不要直接修改包內(nèi)的默認(rèn)配置文件, 以避免更新composer時(shí)覆蓋掉配置.
對(duì)于多模塊應(yīng), 很可能你的 db 服務(wù)和 view 服務(wù)是在模塊的服務(wù)配置中注冊(cè)的, 它們晚于debugbar注冊(cè), 所以debugbar無(wú)法捕捉它們的調(diào)試數(shù)據(jù). 這種情況,你只需要手動(dòng)將 db 和 view 服務(wù)添加到debugbar中:
如果你的應(yīng)用用到多個(gè)數(shù)據(jù)庫(kù)連接, 例如讀寫(xiě)分離. 則可以將每個(gè)數(shù)據(jù)庫(kù)服務(wù)都添加到debugbar:
你也可以選擇在運(yùn)行時(shí)關(guān)閉或開(kāi)啟debugbar
