Add a simple status page to applications with custom checks.
The status page runs all registered checks and renders a page showing its results.
composer require bretrzaun/statuspage
$checker = new \BretRZaun\StatusPage\StatusChecker();
// add your checks here
$checker->addCheck(...);
// in different groups if you like
$group = new StatusCheckerGroup('Group 01');
$group->addCheck(...);
$group->addCheck(...);
$checker->addGroup($group);
// run the checks
$checker->check();
// use the built-in Twig template
$loader = new Twig_Loader_Filesystem('resources/views/');
$twig = new Twig_Environment($loader, ['autoescape' => false]);
$content = $twig->render(
'status.twig',
[
'results' => $checker->getResults(),
'title' => 'My status page'
]
);
$code = $checker->hasErrors() ? 503 : 200;
// create a response with $content and $code
Registering the service provider you add the checks via a callback method:
$app->register(new \BretRZaun\StatusPage\StatusPageServiceProvider(), array(
'statuspage.title' => 'MySilexApp - Status Page',
'statuspage.checker' => $app->protect(function($app, $statusChecker) {
$check = new \BretRZaun\StatusPage\Check\DoctrineConnectionCheck('Database', $app['db']);
$statusChecker->addCheck($check);
// ... add more checks or groups here
})
));
- CallbackCheck: generic check using a PHP callback function
- DoctrineConnectionCheck: checks for a valid Doctrine DBAL connection
- ElasticsearchCheck: checks an Elasticsearch Client for successful pings
- LogFileContentCheck: check a (log) file for certain content
- UrlCheck: checks a URL
- PhpExtensionCheck: check a given PHP extension is loaded
- PhpMemoryLimitCheck: check PHP memory limit
- PhpVersionCheck: check PHP version
Custom checks can be easily added by inheriting BretRZaun\StatusPage\Check\AbstractCheck
.
To run the tests, just enter:
composer install
vendor/bin/phpunit