simplesamlphp / assert
webmozart/assert 的包装器,使其不仅限于检查方法参数
Requires
- php: ^8.1
- ext-date: *
- ext-filter: *
- ext-pcre: *
- ext-spl: *
- league/uri-interfaces: ^7.4
- webmozart/assert: ^1.11
Requires (Dev)
- ext-intl: *
- simplesamlphp/simplesamlphp-test-framework: ^1.7
- v1.3.1
- v1.3.0
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- v0.8.0
- v0.7.2
- v0.7.1
- v0.7.0
- v0.6.3
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.0
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.13
- v0.2.12
- v0.2.11
- v0.2.10
- v0.2.9
- v0.2.8
- v0.2.7
- v0.2.6
- v0.2.5
- v0.2.4
- v0.2.3
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.0
- v0.0.13
- v0.0.12
- v0.0.11
- v0.0.10
- v0.0.9
- v0.0.8
- v0.0.7
- v0.0.6
- v0.0.5
- v0.0.4
- v0.0.3
- v0.0.2
- v0.0.1
- dev-feature/saml-compliant-uri
- dev-feature/xs-datetime-regex
- dev-release-0.8
- dev-release-0.6
- dev-test_php82
- dev-master / 1.1.x-dev
This package is auto-updated.
Last update: 2024-09-16 22:01:08 UTC
README
背景
webmozart/assert 的包装器,使其不仅限于检查方法参数。提出这个分支的主要原因之一是我们需要能够抛出自定义异常,而不是将所有内容都抛出为通用的 InvalidArgumentException
。
通过使用 __callStatic
包装器,我们能够包装 webmozart 方法,允许额外的 exception
参数,并通过原始库捕获 InvalidArgumentException
,然后抛出所需的异常,或者回退到我们自定义的 AssertionFailedException
。
在实践中,这意味着原始库提供的所有断言都可以使用并提供额外的参数。如果你提供了它,并且它转换为一个 Throwable
类,那么当断言失败时,将抛出该类。如果你没有传递额外参数,我们将抛出更通用的 AssertionFailedException
(在我们看来,这仍然比更通用的 InvalidArgumentException
要好)。
我们还认为在这种情况下使用 InvalidArgumentException
是不正确的。PHP 将此异常的意图是当函数参数类型错误时抛出。因此,我们的自定义 AssertionFailedException
继承自 UnexpectedValueException
,后者意图用于验证值是否与有效值集匹配,可能在函数的内部计算过程中。我们认为这更适合在断言中使用。
自定义断言
分支的另一个原因是能够添加一些可能仅适用于 XML / SAML2 相关事物的自定义断言。
目前,此库提供以下附加断言