wikimedia/assert

提供运行时断言

v0.5.1 2021-12-21 11:46 UTC

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()的替代方案。