stiggg / asserter
v0.3
2014-07-20 20:25 UTC
Requires
- php: >=5.3.0
- psr/log: ~1.0
Requires (Dev)
- phpunit/phpunit: ~3.6
This package is not auto-updated.
Last update: 2020-08-03 06:26:51 UTC
README
"使用断言来记录代码中做出的假设,以及清除意外条件。" --Steve McConnell
此库允许创建和管理通用的断言,可以在您的代码中重用。您可以将 Asserter 组件作为服务使用,或通过调用静态方法创建快速断言。
Asserter 组件可以与 PSR-3 兼容的日志记录器结合使用,在抛出 AssertException 之前记录断言失败。
使用方法
<?php use Stiggg\Asserter\Asserter; ... $message = sprintf('number %s was not a prime', $number); # use the service to register assertion... $asserter = new Asserter($logger); // logger is optional $asserter->register('numberIsPrime', function($num) { // http://icdif.com/computing/2011/09/15/check-number-prime-number/ if($num == 1) return false; if($num == 2) return true; if($num % 2 == 0) return false; for($i = 3; $i <= ceil(sqrt($num)); $i = $i + 2) { if($num % $i == 0) return false; } return true; }, $message); $asserter->assert('numberIsPrime', array(8)); # ...or call the component directly Asserter::callback(function($num) { if($num == 1) return false; if($num == 2) return true; if($num % 2 == 0) return false; for($i = 3; $i <= ceil(sqrt($num)); $i = $i + 2) { if($num % $i == 0) return false; } return true; }, array(8), $message);
有两种断言类型用于静态访问,"回调"或"true"。通过"true"断言可以轻松实现特定断言方法(如整数、正则表达式等)。
<?php $number = 2; Asserter::true(is_numeric($number), $number . ' was not numeric'); $regexp = '/assert/'; $haystack = 'assertations are cool'; Asserter::true(preg_match($regexp, $haystack), sprintf('"%s" did not match regexp "%s"', $haystack, $regexp));
许可证
版本控制
版本控制支持 semver: http://semver.org/
请参阅 packagist 获取版本详细信息: https://packagist.org.cn/packages/stiggg/asserter