PHP code example of kslimani / cerberus

1. Go to this page and download the library: Download kslimani/cerberus library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

kslimani / cerberus example snippets



error_reporting(-1);

use Cerberus\ErrorHandler;
use Cerberus\Handler\DebugHandler;

$errorHandler = new ErrorHandler;
$errorHandler->addHandler(new DebugHandler);



use Cerberus\ErrorHandler;
use Cerberus\Handler\LoggerHandler;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;

$errorHandler = new ErrorHandler;
$logger = new Logger('errors');
$logger->pushHandler(new StreamHandler('/path/to/errors.log', Logger::NOTICE));
$errorHandler->addHandler(new LoggerHandler($logger));



use Cerberus\ErrorHandler;

$errorHandler = new ErrorHandler;
$errorHandler->addHandler(function($message, $extra) {

    // $message is a formatted error message
    // $extra is an array with error/exception details

});



use Cerberus\ErrorHandler;
use Cerberus\Handler\DebugHandler;
use Cerberus\Handler\LoggerHandler;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Silex\Application;
use Silex\Provider\TwigServiceProvider;
use Symfony\Component\HttpFoundation\Response;

// Setup autoloader

usExceptionHandler(false)
;
if ($debug) {
    $errorHandler->addHandler(new DebugHandler(false));
}

$logger = new Logger('errors');
$logger->pushHandler(new StreamHandler('/path/to/errors.log', Logger::NOTICE));
$errorHandler->addHandler(new LoggerHandler($logger));

// Create and setup application

$app = new Application();

$app['debug'] = $debug;
$app['exception_handler']->disable();
$app['cerberus'] = $errorHandler;

// Register services

$app->register(new TwigServiceProvider());

// Register simple error pages service

$app['error.response'] = $app->protect(function ($code) use ($app) {
    if ($app->offsetExists('twig')) {

        // 404.html, or 40x.html, or 4xx.html, or default.html
        $templates = array(
            'errors/'.$code.'.html',
            'errors/'.substr($code, 0, 2).'x.html',
            'errors/'.substr($code, 0, 1).'xx.html',
            'errors/default.html'
        );

        return new Response($app['twig']->resolveTemplate($templates)->render(array('code' => $code)), $code);
    } else {
        return new Response(sprintf("<h1>HTTP Error %s</h1>", $code), $code);
    }
});

// Register fatal error handler

$app['cerberus']->addHandler(function($message, $extra) use ($app) {

    if ($app['debug']) {
        return;
    }

    $app['cerberus']->emptyOutputBuffers();
    $response = $app['error.response'](500);

    return $response->send();
});

// Register application exception handler

$app->error(function (\Exception $e, $code) use ($app) {

    if (($code >= 500) && $app['debug']) {
        return;
    }

    return $app['error.response']($code);
});

// Setup routes

$app->get('/hello/{name}', function($name) use($app) {
    return 'Hello ' . $app->escape($name);
});

// Run application

$app->run();