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 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工具通过将调试信息输出到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
= 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'
);
|
此时可以看到只有当客户端输入正确的密码:
此时响应头部才会输出相应的调试信息:
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
|