Put tedious PHP debugging behind you with FirePHP Companion!

FirePHP Companion is a complete re-write of the popular FirePHP Extension and together with the open source FirePHP 1.0 Server Library you have everything you need to rejuvinate your development workflow.

Whether you are a hobby PHP programmer, designer with PHP hacking skills or a hard-core PHP backend coder, FirePHP Companion can save you a lot of time and frustration. Most importantly it integrates will integrate all the latest open source development tools you should be using to verify your work.


Purchase FirePHP Companion once and join the Companion Community for life. Feature updates and public support are always free.

Private & confidential support
and integration services also available.


  • Planned




NOTE: FirePHP Companion is the first tool to run within the DeveloperCompanion tool container.


FirePHP Companion LITE vs FULL version

The LITE version will focus on logging to the Firebug Console for now as it is designed to replace the old FirePHP Extension and work with the new FirePHP 1.0 server library (the sole focus of the FirePHP project going forward).

The FULL version will focus on an optimum PHP & JavaScript development workflow and toolchain setup to make users highly efficient. The current feature set is just the beginning for the FULL version and many more features are on the way. Feature prioritization will be based on user feedback and perceived need.


Features

Log from PHP to Firebug top

$firephp->log('Log message');
$firephp->info($variable);
$firephp->error(new Exception('Ooops!'));
$firephp->trace('Trace to here');

Firebug is an incredible development tool at the browser level and FirePHP (+Companion) connects your PHP backend to Firebug. It empowers you to log messages, variables and traces to Firebug's Console without interfering with your page content!

Source File & Line Info top

Being able to locate logging calls by file and line number makes for a much more efficient workflow. Use this to jump to points of interest in your application when you return for maintenance.

Easy Problem Trapping top

$firephp->trapProblems();

Having all the information you need when debugging is essential. With FirePHP you can trap all PHP-level errors, exceptions and assertion violations automatically whenever they arise. Support for PHP core and parser errors is planned.

Detailed Object Rendering top

var_dump() and print_r() are convenient but of limited help when working with large object graphs and AJAX requests. FirePHP Companion boasts detailed variable renderers that include class names and member visibility (including protected and private) for objects and easy to read rendering of all native PHP types.

New Flexible API top

$inspector = FirePHP::to('request');
$console = $inspector->console('Debug');

$console->on('All Objects')
        ->label('My Object')
        ->log($object);

It all started with log(), info(), warn() and error(), then came group(), table(), trace() and error & exception handling. That got us going but a more flexible and extensible API was needed. FirePHP 1.0's answer is the all new Insight API.

Built-in Security top

define('INSIGHT_IPS', '*');
define('INSIGHT_AUTHKEYS', 'client-auth-key');
// or
define('INSIGHT_CONFIG_PATH', 'package.json');

Securing FirePHP yourself is a thing of the past. FirePHP 1.0 is secure by default requiring you to configure access by IP address and client authorization key.

Seamless Deployment top

// default configuration
package.json
// environment specific configuration
package.local.json
// default access credentials
credentials.json
// environment specific access credentials
credentials.local.json

Tools should be integrated once and follow your workflow with minimum hassles. FirePHP 1.0 boasts a new configuration system that takes multi-environment deployment and code version control requirements into account.

x-wf-1-1-1-1: 208||{
    "url":"...\/_insight_.php",
    "headers":{"x-insight":"transport"},
    "payload":{"key":"cfa...d0d"}
}|

Traditionally FirePHP sent all data via HTTP response headers. This can quickly cause problems when you need to go through a proxy to reach your application. FirePHP 1.0 is designed to be fully proxy compatible by only sending a minimal set of headers and making a secondary request to fetch the debug data.

Many PHP applications have moved from being primarily procedural to being object oriented with hundreds of classes. Circular object referencing is frequent and FirePHP 1.0 is equipped to handle even the most complex architecture.

class MyClass {
    /**
     * @insight filter=on
     */
    public $var;
}

Not all class members are of interest and may contain information you want to hide to streamline the debugging process. With annotation-based class member filtering you have control over which data makes it to the client.

$console->on('Show Environment')->log();
$console->on('Feed Debug')->log();

Incorporating logging into your application is considered good practice especially if you need to be able to troubleshoot intricate logic at a later point in time. With conditional logging you can enable and disable logging calls from the client, never needing to touch your code.

Tutorial: Gain insight into your cache interaction with FirePHP Companion

Firebug is an amazing page and request debugger at the browser level but its UI falls short of being able to accomodate a more wholistic picture of your application. The Companion Window is designed to cover all aspects of your application and development workflow. It may look basic now, but a lot is planned to make it the ultimate easily extensible development tool.

$inspector = FirePHP::to('request');
$inspector->console('First Tab')->log();
$inspector->console('Second Tab')->log();

Firebug provides one console for the page which is sufficient for ad-hock logging during development. When leveraging logging for higher development productivity multiple consoles come in very handy. Once you start using these you will never look back.

Reloading pages using the browser is easy, but how often do you want to reload the entire page when working on individual AJAX requests? Reloading requests with FirePHP Companion is a snap and very convenient when working on backend logic. Simply edit your PHP file, click Reload and FirePHP Companion will re-submit your request (including all headers and post data) showing updated debugging information in an instant.

Maintaining applications is a fact of life and using the right tools can make any maintenance job a lot easier. Being able to view PHP source files of a deployed application without needing to mess with downloading the code first is amazingly convenient. There are a lot of features planned to address the maintenance problem area. To start with, you can click on any logged message to view the PHP source file positioned exactly to the corresponding logging call.



Bring some permanence to your PHP development with a Companion Server!

Maintaining a few PHP applications manually is not too much of a problem. Evaluating, integrating, analyzing, optimizing, testing, benchmarking and building lots of PHP projects can become an all-consuming task.

Your cloud-based Companion Server provides a consistent PHP 5.3 stack for all your development needs. Together with FirePHP Companion, source version control, automatic deployment, live code editing and deep server and PHP intelligence it provides the ideal sandbox for all your PHP development, testing and benchmarking needs.

Use a Companion Server to evaluate and integrate new software, continuously build and test projects, host projects for development and quality assurance, backup local development work or any other PHP related work requiring a permanent or disposable server. Even better, all project deployments are tracked for future use and server instances can be created, cloned and suspended on demand.