Login   Register  
PHP Classes
elePHPant
Icontem

File: README.md

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Brian Rue  >  Ratchet.io  >  README.md  >  Download  
File: README.md
Role: Documentation
Content type: text/plain
Description: documentation
Class: Ratchet.io
Track PHP script errors with Ratchet.io service
Author: By
Last change:
Date: 2012-09-07 19:09
Size: 3,647 bytes
 

Contents

Class file image Download
ratchetio-php
===========

PHP notifier for Ratchet.io. Catches and reports exceptions to [Ratchet.io](https://ratchet.io/) for alerts, reporting, and analysis.

```php
// installs global error and exception handlers
Ratchetio::init(array('access_token' => 'your_access_token'));

try {
    throw new Exception('test exception');
} catch (Exception $e) {
    Ratchetio::report_exception($e);
}

Ratchetio::report_message('testing 123', 'info');

// raises an E_NOTICE which will be reported by the error handler
$foo = $bar;

// will be reported by the exception handler
throw new Exception('test 2');
```

## Installation and Configuration

1. Download the code and put `ratchetio.php` somewhere you can access it

2. Add the following code at your application's entry point:

```php
require_once 'ratchetio.php';

$config = array(
    // required
    'access_token' => 'your_ratchetio_access_token',
    // optional - environment name. any string will do.
    'environment' => 'production',
    // optional - dir your code is in. used for linking stack traces.
    'root' => '/Users/brian/www/myapp'
);
Ratchetio::init($config);
```

This will install an exception handler (with `set_exception_handler`) and an error handler (with `set_error_handler`). If you'd rather not do that:

```php
$set_exception_handler = false;
$set_error_handler = false;
Ratchetio::init($config, $set_exception_handler, $set_error_handler);
```

3. That's it! If you'd like to report exceptions that you catch yourself:

```php
try {
    do_something();
} catch (Exception $e) {
    Ratchetio::report_exception($e);
}
```

You can also send ratchet log-like messages:

```php
Ratchetio::report_message('could not connect to mysql server', 'warning');
```


## Configuration reference

All of the following options can be passed as keys in the $config array.

- access_token: your project access token
- environment: environment name, e.g. 'production' or 'development'
- root: path to your project's root dir
- branch: name of the current branch (default 'master')
- logger: an object that has a log($level, $message) method. If provided, will be used by RatchetioNotifier to log messages.
- base_api_url: the base api url to post to (default 'https://submit.ratchet.io/api/1/')
- batched: true to batch all reports from a single request together. default true.
- batch_size: flush batch early if it reaches this size. default: 50
- timeout: request timeout for posting to ratchet, in seconds. default 3.
- max_errno: max PHP error number to report. e.g. 1024 will ignore all errors above E_USER_NOTICE. default: -1 (report all errors).
- capture_error_stacktraces: record full stacktraces for PHP errors. default: true.
- error_sample_rates: associative array mapping error numbers to sample rates. Sample rates are ratio out of 1, e.g. 0 is "never report", 1 is "always report", and 0.1 is "report 10% of the time". Sampling is done on a per-error basis. Default: empty array, meaning all errors are reported.

Example use of error_sample_rates:
```php
$config['error_sample_rates'] = array(
    // E_WARNING omitted, so defaults to 1
    E_NOTICE => 0.1,
    E_USER_ERROR => 0.5,
    // E_USER_WARNING will take the same value, 0.5
    E_USER_NOTICE => 0.1,
    // E_STRICT and beyond will all be 0.1
);
```


## Support

If you have any feedback or run into any problems, please contact support at support@ratchet.io


## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Added some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request