wikimedia / assert
提供运行时断言
v0.5.1
2021-12-21 11:46 UTC
Requires
- php: >=7.2.9
Requires (Dev)
- mediawiki/mediawiki-codesniffer: 38.0.0
- mediawiki/minus-x: 1.1.1
- ockcyp/covers-validator: 1.3.3
- php-parallel-lint/php-console-highlighter: 0.5.0
- php-parallel-lint/php-parallel-lint: 1.3.1
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2024-09-13 12:30:04 UTC
README
此包提供了PHP的assert()
的一个替代方案,允许以简单且可靠的方式检查PHP代码中的先决条件和后置条件。它作为MediaWiki RFC被提出,但它是完全通用的,可以被任何PHP程序或库使用。它采用MIT许可协议,请参阅COPYING文件。
用法
Assert类提供了一些静态方法用于检查各种断言。最常见的是检查参数的类型,通常在构造函数或设置方法中
function setFoo( $foo ) { Assert::parameterType( 'integer', $foo, 'foo' ); Assert::parameter( $foo > 0, 'foo', 'must be greater than 0' ); } function __construct( $bar, array $bazz ) { Assert::parameterType( 'Me\MyApp\SomeClass', $bar ); Assert::parameterElementType( 'int', $bazz ); }
不建议在代码的性能关键区域检查参数或其他断言,如先决条件或后置条件,因为评估表达式和调用断言函数会花费时间。
理由
此提议的背景是关于PHP的assert()
是否可以在MediaWiki代码中使用,以及是否应该使用的反复讨论。两个相关线程
结果似乎是这样的
- 断言通常是一种提高代码质量的好方法
- 但PHP的 ''assert()'' 在设计上是有缺陷的
根据Tim Starling的建议,此包提供了PHP内置的assert()
的替代方案。