PHP Console:https://github.com/barbushin/php-console#php-console-server-library
功能介绍
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 PhpConsoleHandler $handler = PhpConsoleHandler::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工具通过将调试信息输出到http响应头PHP-Console,然后PHP Console插件分析响应头PHP-Console字符串输出相应调试信息。
附录
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 = PhpConsoleConnector::getInstance(); $connector ->setPassword( $password ); // Call debug from PhpConsoleHandler $handler = PhpConsoleHandler::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' ); |
此时可以看到只有当客户端输入正确的密码:
此时响应头部才会输出相应的调试信息:
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 |