PHP Console工具使用分享



您的评价:


     



不错



 收藏该经验    






功能介绍



PHP Console工具和FirePHP功能相似,提供以下功能:

Handle PHP errors, dump variables, execute PHP code remotely in Google Chrome


​回到顶部​


Demo



首先在Chrome中安装PHP Console插件:

​https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef​

其次在PHP代码中引入PHP Console库,然后调用输出相应调试信息:

如下例index2.php:




​?​



1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17




​<?php​


 


​require_once​​​​(__DIR__ . ​​​​'/../src/PhpConsole/__autoload.php'​​​​);​


 


​// Call debug from PhpConsole\Handler​


​$handler​​ ​​= PhpConsole\Handler::getInstance();​


​$handler​​​​->start();​


​$handler​​​​->debug(​​​​'called from handler debug'​​​​, ​​​​'some.three.tags'​​​​);​


 


​$array​​ ​​= ​​​​array​​​​(​


​'test'​​ ​​=> 1,​


​'test2'​​ ​​=> 1,​


​'key'​​ ​​=> ​​​​array​​​​(​


​1, 2, 3, 4,​


​), ​


​);​


​$handler​​​​->debug(​​​​$array​​​​, ​​​​'test.wiki.wade.zhan'​​​​);​



输出调试信息到控制台,如下图:

PHP Console工具使用分享_chrome


​回到顶部​


原理介绍

PHP Console工具通过将调试信息输出到http响应头PHP-Console,然后PHP Console插件分析响应头PHP-Console字符串输出相应调试信息。

PHP Console工具使用分享_chrome_02

 


​回到顶部​


附录



PHP Console提供了通过密码来保护调试信息的功能,如下例,在服务器端设置密码:




​?​



1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21




​<?php​


 


​require_once​​​​(__DIR__ . ​​​​'/../src/PhpConsole/__autoload.php'​​​​);​


 


​$password​​ ​​= ​​​​'test'​​​​;​


​$connector​​ ​​= PhpConsole\Connector::getInstance();​


​$connector​​​​->setPassword(​​​​$password​​​​);​


 


​// Call debug from PhpConsole\Handler​


​$handler​​ ​​= PhpConsole\Handler::getInstance();​


​$handler​​​​->start();​


​$handler​​​​->debug(​​​​'called from handler debug'​​​​, ​​​​'some.three.tags'​​​​);​


 


​$array​​ ​​= ​​​​array​​​​(​


​'test'​​ ​​=> 1,​


​'test2'​​ ​​=> 1,​


​'key'​​ ​​=> ​​​​array​​​​(​


​1, 2, 3, 4,​


​), ​


​);​


​$handler​​​​->debug(​​​​$array​​​​, ​​​​'test.wiki.wade.zhan'​​​​);​



此时可以看到只有当客户端输入正确的密码:

PHP Console工具使用分享_工具使用_03

此时响应头部才会输出相应的调试信息:




​?​



1


2


3


4


5


6


7


8


9




​HTTP​​​​/1​​​​.1 200 OK​


​Server: Tengine​​​​/2​​​​.0.3​


​Date: Tue, 28 Oct 2014 12:36:04 GMT​


​Content-Type: text​​​​/html​


​Connection: keep-alive​


​X-Powered-By: PHP​​​​/5​​​​.3.29​


​PHP-Console-Postpone: {​​​​"protocol"​​​​:5,​​​​"isPostponed"​​​​:​​​​true​​​​,​​​​"id"​​​​:​​​​"6957661441226218549514727634"​​​​}​


​PHP-Console: {​​​​"protocol"​​​​:5,​​​​"auth"​​​​:{​​​​"publicKey"​​​​:​​​​"bf802ef9f6d61a5d4a720892a79bf8285d92c31c2a99be2931b504dc54eeb209"​​​​,​​​​"isSuccess"​​​​:​​​​true​​​​},​​​​"docRoot"​​​​:​​​​"\/usr\/local\/wwwroot\/dokuwiki"​​​​,​​​​"sourcesBasePath"​​​​:null,​​​​"getBackData"​​​​:null,​​​​"isLocal"​​​​:​​​​false​​​​,​​​​"isSslOnlyMode"​​​​:​​​​false​​​​,​​​​"isEvalEnabled"​​​​:​​​​false​​​​,​​​​"messages"​​​​:[{​​​​"type"​​​​:​​​​"debug"​​​​,​​​​"tags"​​​​:[​​​​"some"​​​​,​​​​"three"​​​​,​​​​"tags"​​​​],​​​​"data"​​​​:​​​​"called from handler debug"​​​​,​​​​"file"​​​​:null,​​​​"line"​​​​:null,​​​​"trace"​​​​:null},{​​​​"type"​​​​:​​​​"debug"​​​​,​​​​"tags"​​​​:[​​​​"test"​​​​,​​​​"wiki"​​​​,​​​​"wade"​​​​,​​​​"zhan"​​​​],​​​​"data"​​​​:{​​​​"test"​​​​:1,​​​​"test2"​​​​:1,​​​​"key"​​​​:[1,2,3,4]},​​​​"file"​​​​:null,​​​​"line"​​​​:null,​​​​"trace"​​​​:null}]}​


​Content-Length: 0​