bretrzaun / statuspage
Adds a status page to an app
Installs: 11 765
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 3
Forks: 4
Open Issues: 2
Requires
- php: >=8.0
- psr/http-client: ^1.0
- psr/log: ^2.0||^3.0
- twig/twig: ^2.0||^3.0
Requires (Dev)
- dg/bypass-finals: ^1.4
- doctrine/dbal: ~3.2
- doctrine/migrations: ^3.3
- elasticsearch/elasticsearch: ^6.0||^7.0||^8.0
- mongodb/mongodb: ^1.4
- monolog/monolog: ^2.3
- nyholm/psr7: ^1.5
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^9.0
- symfony/browser-kit: ^5.0||^6.0
- symfony/css-selector: ^5.0||^6.0
- symfony/event-dispatcher: ^5.0||^6.0
- symfony/http-client: ^5.0||^6.0
Suggests
- doctrine/dbal: for checking DB connections
- doctrine/migrations: for checking Doctrine Migration status
- elasticsearch/elasticsearch: for checking Elasticsearch
- mongodb/mongodb: for checking MongoDB connections
README
Add a simple status page to applications with custom checks.
The status page runs all registered checks and renders a page showing its results.
Installation
composer require bretrzaun/statuspage
Usage
$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( 'bootstrap_5.html.twig', [ 'results' => $checker->getResults(), 'title' => 'My status page' ] ); $code = $checker->hasErrors() ? 503 : 200; // create a response with $content and $code
Out-of-the-box checks
- 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
- MongoDbCheck: checks a MongoDB client
- PhpExtensionCheck: check a given PHP extension is loaded
- PhpIniCheck: check a value of php.ini
- PhpMemoryLimitCheck: check PHP memory limit
- PhpVersionCheck: check PHP version
- UrlCheck: checks a URL
Custom checks
Custom checks can be easily added by implementing BretRZaun\StatusPage\Check\CheckInterface
or inheriting BretRZaun\StatusPage\Check\AbstractCheck
.
Tests
To run the tests, just enter:
composer install
vendor/bin/phpunit