bretrzaun / statuspage
为应用程序添加状态页面
4.2.0
2024-02-29 13:46 UTC
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
使用自定义检查,为应用程序添加简单的状态页面。
状态页面会运行所有已注册的检查,并渲染显示结果的页面。
安装
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
开箱即用的检查
- CallbackCheck: 使用PHP回调函数的通用检查
- DoctrineConnectionCheck: 检查有效的 Doctrine DBAL 连接
- ElasticsearchCheck: 检查 Elasticsearch 客户端 是否成功ping
- LogFileContentCheck: 检查(日志)文件中的特定内容
- MongoDbCheck: 检查 MongoDB 客户端
- PhpExtensionCheck: 检查指定的PHP扩展是否已加载
- PhpIniCheck: 检查php.ini的值
- PhpMemoryLimitCheck: 检查PHP内存限制
- PhpVersionCheck: 检查PHP版本
- UrlCheck: 检查URL
自定义检查
通过实现 BretRZaun\StatusPage\Check\CheckInterface
或继承 BretRZaun\StatusPage\Check\AbstractCheck
,可以轻松添加自定义检查。
测试
要运行测试,只需输入
composer install
vendor/bin/phpunit