Where code meets community
ALPHA

This approach of including FirePHP is DEPRECATED!

Overview

FirePHP has evolved a lot since its first release in 2007. One major enhancement is built-in security to ensure only authorized clients are allowed to access application internal information. This addition among other features has lead to a modified approach in how to configure and include FirePHP. See ../Install for a comparison.

The traditional way of just including and using FirePHP is still supported BUT when using this approach all new FirePHP 1.0 features will be bypassed!

You are encouraged to upgrade (see below) to the new way of configuring FirePHP.

Including

It is assumed you have FirePHP downloaded.

The code below should be placed at the top of the bootstrap file before any application code is run.

See here for details on the FirePHP Object Oriented and Procedural APIs.

Instead of ob_start(), the output_buffering php ini directive may be used. Output buffering is needed as headers are sent while logging to FirePHP throughout the request.

ANYONE will be able to receive logged data unless you specifically disable FirePHP! See FirePHP API.

If using the extracted zip archive

// Object Oriented API
require_once('/.../FirePHPCore/FirePHP.class.php');
// or Procedural API
require_once('/.../FirePHPCore/FB.php');
// start output buffering
ob_start();

Three dots (...) denotes a path that needs to be replaced.

Instead of using an absolute path to the FirePHPCore folder it may be placed on the include path.

If using the phar archive

// Object Oriented API
require_once('phar://.../firephp.phar/FirePHPCore/FirePHP.class.php');
// or Procedural API
require_once('phar://.../firephp.phar/FirePHPCore/FB.php');
// start output buffering
ob_start();

Three dots (...) denotes a path that needs to be replaced.

Upgrading to FirePHP 1.0 proper

As mentioned above, when using the traditional way of including FirePHP, all new features are bypassed and the new built-in security features are not utilized.

Upgrading to the new configuration and inclusion approach is recommended for all users. The traditional FirePHP Object-Oriented and Procedural APIs will continue to work.

A comparison of the different approaches and detailed instruction links can be found here.

Required Changes

  • Set some constants prior to including FirePHP.
  • Change the FirePHP file being included.
  • Remove explicit ob_start() call if applicable as output buffering will automatically be enabled.

The constants (and configuration files if applicable) that need to be used for a specific application are provided when setting up the application in the FirePHP Client. See Configure: constants or Configure: files (preferred) for detailed instructions.

Upgrade support is provided via the FirePHP mailing list. See OpenSource.

Example

Before (FirePHP Traditional):

require_once('/.../FirePHPCore/FirePHP.class.php');
ob_start();
$firephp = FirePHP::getInstance(true);
$firephp->log('Hello World');

After (Configure: files):

define('INSIGHT_CONFIG_PATH', '/.../package.json');
require_once('/.../FirePHP/Init.php');
$firephp = FirePHP::getInstance(true);
$firephp->log('Hello World');

Homepage: Sourcemint.com

Status

Sourcemint is incomplete ALPHA technology and continuously evolving in sync with underlying and related projects. Production ready aspects will be documented and made available in time. Your Feedback is welcome and appreciated!

Who

Sourcemint is one of the results of intense focus by Christoph Dorn over the past several years and continuous exploration throughout Christoph's interest in software development over the past 15+ years.

Sourcemint is the love child of one person guided by the voices of passionate developers at the top of their game who are leading the industry into a new era of software development.

What

Sourcemint is an integral part of Christoph's work intended to realize his dream of one global toolchain under which components may be arbitrarily combined into maintainable mission critical systems by providing an all-encompassing and organized package repository from which consistent and autonomic systems may be built.

Sourcemint provides an automated software building and integration service as well as an intelligent software delivery network to distribute built software to all deployed systems and Internet users.

This means an arbitrary (code, configuration, network, ...) change may be made to a software system which can then be automatically built, tested, distributed and deployed. Every change constitutes a completely new system made possible by the fact that changes, any changes, are cheap and fully tested in every way before going live.

Just imagine what this means in your daily work.

Why

Automated software builds, continuous integration processes, streamlined issue trackers, community supported software, source control, online collaboration and automated cloud deployment have wet our appetite but hardly scratch the surface of what it actually means to have a completely automated production cycle from idea to delivery. The full potential is only realized once these separate solutions addressing different areas work together harmoniously.

What has been missing is new ways of looking at how to build software.

How

Christoph's work provides a new way to build software that is not necessarily new in the sense of ideas or technology but rather arrangement and timing. Christoph has through exploration and experimentation distilled current cutting edge technology, knowledge and wisdom into a toolchain platform called PINF available open source under the MIT license to realize a new breed of software.

Imagine software and systems that just work and are a pleasure to maintain.

Sourcemint is built entirely on PINF, as is all of Christoph's work, and can be used by any developer to tap into the power of the PINF approach to build open source or commercial libraries, frameworks, applications, systems and services.

Christoph's hope is that PINF and related projects will provide a foundation for developers to cooperate more widely and experiment with new ideas by eliminating some of the major constraints imposed by traditional toolchains. Traditional toolchains create systems that typically rot because they are practically impossible to refactor. We need a toolchain such as PINF which has refactorability designed into its core.

Let's create software that breathes with life and is in large part self-sustaining!

You

Join Christoph in his mission to help you, the developer, and help yourself by broadly applying the tools and approaches you know work to all of your work. Lean on PINF, your mind is begging you. Learn it, teach others, and let your inspiration soar!

Follow Sourcemint and PINF on twitter to watch for news of cutting-edge tools, tutorials and services coming online. You can also follow Christoph's work directly.