Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
P

php-console

> 编程语言
Open source

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

1.3K stars0 likes3 views
WebsiteGitHub

About

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

PHP Console server library

PHP Console allows you to handle PHP errors & exceptions, dump variables, execute PHP code remotely and many other things using Google Chrome extension PHP Console and PhpConsole server library.

Overview

  • See presentation video.
  • Install Google Chrome extension PHP Console.
  • See how it works on live demo page.
  • PHP Console extension features list and screenshots.
  • PHP Console server library features list.
  • Chrome extension source code https://github.com/barbushin/php-console-extension

Requirements

  • PHP Console extension must be installed on Google Chrome (extension source code is also on GitHub)
  • PHP 5.3 (or later) on server.

*For projects with PHP setSourcesBasePath('/path/to/project');

So paths like /path/to/project/module/file.php will be displayed on client as /module/file.php.

Works with different server encodings

If your internal server encoding is not UTF-8, so you need to call:

$connector->setServerEncoding('CP1251');

Initialization performance

PhpConsole server library is optimized for lazy initialization only for clients that have Google Chrome extension PHP Console installed. There is example of correct initialization PhpConsole on your production server.

Protect connection

Protect by password

$connector->setPassword('yohoho123', true);

Clients will need to enter a password to get access to PHP Console server data. All passwords are stored on client as SHA-256 hashes. Second argument says that the PHP Console authorization token will depend on the client IP.

SSL only connection mode

$connector->enableSslOnlyMode();

So all PHP Console clients will be automatically redirected to HTTPS.

Protect connection by list of allowed IP masks

$connector->setAllowedIpMasks(array('192.168.*.*', '2001:0:5ef5:79fb:*:*:*:*'));

Handle errors

There is a PhpConsole\Handler class that initializes PHP errors & exceptions handlers and provides the next features:

  • Handle PHP errors (+fatal & memory limit errors) and exceptions.
  • Ignore repeated errors.
  • Call previously defined errors and exceptions handlers.
  • Handle caught exceptions using $handler->handleException($exception).
  • Debug vars using $handler->debug($var, 'some.tags').

Initialize PhpConsole\Handler in the top of your main project script:

$handler = PhpConsole\Handler::getInstance();
/* You can override default Handler behavior:
	$handler->setHandleErrors(false);  // disable errors handling
	$handler->setHandleExceptions(false); // disable exceptions handling
	$handler->setCallOldHandlers(false); // disable passing errors & exceptions to prviously defined handlers
*/
$handler->start(); // initialize handlers

Debug vars

PHP Console has multifunctional and smart vars dumper that allows to

  • Dump any type variable.
  • Dump protected and private objects properties.
  • Limit dump by level, items count, item size and total size(see $connector->getDumper()).
  • Dump objects class name.
  • Smart dump of callbacks and Closure.
  • Detect dump call source & trace(call $connector->getDebugDispatcher()->detectTraceAndSource = true).

How to call

Longest native debug method call:

PhpConsole\Connector::getInstance()->getDebugDispatcher()->dispatchDebug($var, 'some.tags');

Shorter call debug from Handler:

PhpConsole\Handler::getInstance()->debug($var, 'some.tags');

Shortest call debug using global PC class

PhpConsole\Helper::register(); // it will register global PC class
// ...
PC::debug($var, 'tag');
PC::tag($var);

Custom call debug by user defined function

function d($var, $tags = null) {
	PhpConsole\Connector::getInstance()->getDebugDispatcher()->dispatchDebug($var, $tags, 1);
}
d($var, 'some.tags');

Tags

  • Debug tags argument is optional.
  • Tags is a string with tags separated by dot(e.g. "low.db").
  • Tags can be used to identify what exactly var was dumped.
  • You can configure client to ignore displaying some tags.

Remote PHP code execution

PHP Console provide a way to execute PHP code on your server remotely, from Google Chrome extension terminal.

  • Remote PHP code execution allowed only in password protected mode
  • Every eval request is signed with unique SHA-256 token
  • Result contains: output, return and time data
  • Errors & exception occurred during PHP code execution will be handled

Configuration

$connector = PhpConsole\Connector::getInstance();
$connector->setPassword($password);

// Configure eval provider
$evalProvider = $connector->getEvalDispatcher()->getEvalProvider();
$evalProvider->addSharedVar('post', $_POST); // so "return $post" code will return $_POST
$evalProvider->setOpenBaseDirs(array(__DIR__)); // see http://php.net/open-basedir

$connector->startEvalRequestsListener(); // must be called in the end of all configurations

PSR-3 logger implementation

There is PHP Console implementation of PSR-3 interface. to integrate PHP Console with PSR-3 compitable loggers(e.g. Monolog). See PhpConsole\PsrLogger.

Jump to file

Read this article if you want to configure PHP Console extension to open errors/exceptions source file:line right in your IDE, just by click on the button in Notification popup.

Easy migrate from PhpConsole v1.x to v3.x

If you have used PhpConsole v1.x and want to migrate to v3.x without any code changes, so just use PhpConsole\OldVersionAdapter:

PhpConsole\OldVersionAdapter::register(); // register PhpConsole v1.x class emulator

// Call old PhpConsole v1 methods as is
PhpConsole::start(true, true, $_SERVER['DOCUMENT_ROOT']);
PhpConsole::debug('Debug using old method PhpConsole::debug()', 'some,tags');
debug('Debug using old function debug()', 'some,tags');
echo $undefinedVar;
PhpConsole::getInstance()->handleException(new Exception('test'));

// Call new PhpConsole methods, if you want :)
PhpConsole\Connector::getInstance()->setServerEncoding('cp1251');
PhpConsole\Helper::register();
PC::debug('Debug using new methods');

But, anyway, if you can't migrate to new version of PHP Console because of using PHP < 5.3 on your servers, then you can use old deprecated version of PHP Console.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

PHP

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言