“It’s like your application is talking to you in real-time.”

Developers love Phpconsole. Here's why:

Install with one line of code

It's as simple as adding one line of code:

require 'phpconsole.php'; // that's it! no configuration required

Using Composer? You can easily add it to your composer.json file:

"phpconsole/phpconsole": "3.*"

Watch the video to see how easy it is to get started.

Tap into variables and functions with ease

Capturing data from within the app has never been easier! Capture objects, arrays, JSON, strings, etc, using one simple command. It can be triggered hundreds of times on a single page without hogging up your server. Everything is sent over in just one call to Phpconsole servers. Clean and efficient.

// turn this
$foo = bar();

// into this
$foo = p(bar());

// or just add the following after the first line
p($foo);

End-to-end encryption of your data

Phpconsole supports end-to-end AES-256 encryption. You can provide a password that will be used to encrypt all data before it leaves your servers.

Decryption happens in your browser. Phpconsole will never have access to plain-text version of data sent, it will also never store your password.

'projects' => array( 'yourProjectName' => array( 'apiKey' => '64-chars-long-project-api-key', 'encryptionPassword' => 'r4nd0m3ncrypti0np4ssw0rd' ) ),

Increased output readability

Stop worrying about print_r(), echo, printf, <pre> and hunting echoed values all over the place. Send them to Phpconsole instead, and enjoy enhanced readability and additional information (filename, line number, date and time, hostname).

Replace this in your browser:

{"user":{"id":12345,"login":"peter","password":"secret","is_admin":true, "assigned_to_pages":[{"id":9134,"name":"Page 1","value":"Lorem ipsum facilisis non nulla scelerisque tempor nostra malesuada nunc pretium egestas rutrum, nulla accumsan nostra semper etiam ligula lorem risus id molestie magna porttitor.","tags":["tag1","tag2","tag3"]},{"id":4898,"name":"Page 2","value":"Potenti integer vestibulum fames imperdiet cras maecenas lobortis morbi.","tags":["tag4","tag5","tag6"]}]"created_at":"2011-01-01 12:00:00","updated_at":"2011-01-01 12:00:00"}}

with this in Phpconsole:

[Received at 13:30:04 on 3rd June 2014] [File: /public_html/system/helpers/email.php] [Line: 987] [Address: https://phpconsole.com/actions/email/send] [Hostname: worker01] { "user" : { "id" : 12345, "login" : "peter", "password" : "secret", "is_admin" : true, "assigned_to_pages" : [ { "id" : 9134, "name" : "Page 1", "value" : "Lorem ipsum facilisis non nulla scelerisque tempor nostra malesuada nunc pretium egestas rutrum, nulla accumsan nostra semper etiam ligula lorem risus id molestie magna porttitor.", "tags" : [ "tag1", "tag2", "tag3" ] }, { "id" : 4898, "name" : "Page 2", "value" : "Potenti integer vestibulum fames imperdiet cras maecenas lobortis morbi.", "tags" : [ "tag4", "tag5", "tag6" ] } ] "created_at" : "2011-01-01 12:00:00", "updated_at" : "2011-01-01 12:00:00" } }

Collaborate with other developers

Create new Organisations. Invite others to one of your Organisations and share all projects within it. Filter your own data when viewing project. Adding new developer doesn't require making any changes on your server. Simply invite them through Phpconcole.com interface.

// that's all you have to write to send data to a shared project
p($foo);

Claim the data within Phpconsole.com interface to mark it as sent by you. All future snippets sent from the same browser and domain will be marked as sent by you.

Preserve the flow of the app

Nothing is outputted to the browser - your app's behaviour is not altered. Works perfectly e.g. for AJAX calls returning JSON - you wouldn't want to append some random data at the end of JSON. Capture data from script generating miniatures or processing images without breaking the flow - script can still send correct headers and display image, while you capture useful data via phpconsole.

print_r($foo); // they will both alter script's output,
echo $foo; // possibly breaking AJAX calls or miniature creation process

p::info($foo); // will not change the output, but you still get the content

Use in live applications without disturbing users

You can keep Phpconsole code in your production app - it's not going to display anything on the screen.

You can force Phpconsole to send data every time the user executes code (even regular users) by specifying project's handle as the second parameter:

p::success($foo, 'cron'); // useful for cron scripts, etc.
Sign up now Free 30-day trial. No credit card required.