Pull request Compare This branch is 59 commits ahead of till:master.
Latest commit dc511de Sep 26, 2013 @ankane Use spaces
Failed to load latest commit information.
examples Fixed file modes Jan 20, 2012
exceptional Added proxy support Jan 31, 2013
test Added test for blacklist Sep 26, 2011
LICENSE.txt Moved license to separate file May 8, 2011 Fixed readme Jan 31, 2013
composer.json Use spaces Sep 26, 2013
exceptional.php Added proxy support Jan 31, 2013

Exceptional PHP

The power of Exceptional for PHP

Super simple setup

require "path/to/exceptional.php";

You can turn off exception notifications by passing an empty string as the API key. This is great for development.

if (PHP_ENV == "production") {
  $api_key = "YOUR-API-KEY";
else {
  $api_key = "";


You can turn on SSL by setting the second parameter to true.

Exceptional::setup($api_key, true);

Filtering sensitive data

You can blacklist sensitive fields from being submitted to Exceptional:

Exceptional::blacklist(array('password', 'creditcardnumber'));

Exceptions and errors

Exceptional PHP catches both errors and exceptions. You can control which errors are caught. If you want to ignore certain errors, use error_reporting(). Here's a common setting:

error_reporting(E_ALL & ~E_NOTICE);  // ignore notices

Custom error and exception handlers are supported - see examples/advanced.php.

Fatal and parse errors are caught, too - as long the setup file parses correctly.

404 support

Add the following code to your 404 handler to track 404 errors:

throw new Http404Error();

Send extra data with your exceptions

$context = array(
    "user_id" => 1

See the Exceptional documentation for more details.

Controller + action support

You can include the controller and action names in your exceptions for easier debugging.

Exceptional::$controller = "welcome";
Exceptional::$action = "index";

Proxy server

You can send exceptions through proxy server (no support for authentication).

Exceptional::proxy($host, $port);