PHP断言库
发布于 作者 Paul Redmond
Assert 是由 Benjamin Eberlei 开发的 composer 包,它充当“业务模型中输入验证的轻量级断言库”。
目的是减少在模型中实现断言所需的代码量,并简化实现断言的代码路径。当断言失败时,会抛出异常,从而无需在代码中使用 if 语句。
以下是 README 中的基本示例用法
<?phpuse Assert\Assertion; function duplicateFile($file, $times){ Assertion::file($file); Assertion::digit($times); for ($i = 0; $i < $times; $i++) { copy($file, $file . $i); }}
此包包含许多断言,包括一个“all”助手,它将所有提供的 value 与给定断言进行检查
Assertion::isInstanceOf($value, $className); Assertion::allIsInstanceOf(array(new \stdClass, new \stdClass), 'stdClass'); // successAssertion::allIsInstanceOf(array(new \stdClass, new \stdClass), 'PDO'); // exception
需要注意的一点是:如果断言失败,断言会抛出异常,从而可能避免在代码中对断言进行条件判断。
如果您需要低级代码断言,该库包含许多有用的断言方法和策略,例如延迟断言,您可能希望一次收集多个错误,而不是在第一个断言失败时就失败。
Assert::lazy() ->that(10, 'foo')->string() ->that(null, 'bar')->notEmpty() ->that('string', 'baz')->isArray() ->verifyNow();
查看 readme 以获取可用断言的完整列表,并了解如何在您的项目中使用该库。您可以在 GitHub 上 beberlei/assert 获得完整的安装说明和查看源代码。