fahrenholz / mayhem
1.0.1
2019-02-06 17:20 UTC
Requires
- php: ^7.2
- psr/log: ^1.0
Requires (Dev)
- codeception/codeception: ^2.4
- monolog/monolog: ^1.23
- phpstan/phpstan: ^0.9.2
This package is auto-updated.
Last update: 2024-09-07 05:38:59 UTC
README
解决的问题
此库的目的是以框架无关的方式允许你在PHP应用程序中引入一些随机故障。无论是为了娱乐还是为了增强系统的弹性,此库都允许你掷骰子,随机选择一组标准动作,或者创建你自己的动作来混淆你的客户端。
入门
通过composer安装
$ composer require fahrenholz/mayhem:^1.0
示例测试
$ cd examples && docker-compose up -d
这将启动一个带有官方php+apache镜像的docker容器,并设置一个小型测试网站连接到它,通过https://:8080 浏览
使用
开箱即用
实例化
use Mayhem\Entity\Probability;
use Mayhem\Mayhem;
use Mayhem\Failure\LatencyFailure;
use Mayhem\Failure\RedirectFailure;
$probabilities = [
new Probability('prob1', 0.03, LatencyFailure::class),
new Probability('prob2', 0.01, RedirectFailure::class),
];
$service = new Mayhem($probabilities);
使用
$event = $service->rollADice(); //randomly picks an event or nothing
if ($event !== null) {
//something will happen
$failure = $event->getFailureAction(); //instantiate failure
$failure($event->getParameters()); //invoke failure
}
注意事项
随库提供的CrashFailure会释放forkbomb。请谨慎使用,以免完全崩溃你的开发环境。
扩展
库中只提供了一组有限的故障,并且它们都没有经过测试,原因在于它们的目的是为你提供一个实现自己的故障场景的蓝图。
实现这一点的唯一规则是:每个故障场景都必须实现FailureInterface。
贡献
请随时贡献并与我联系。