kdyby/strict-objects

一个简单的特性,使得类在调用或访问未定义成员(属性或方法)时变得严格。

v2.0.1 2020-12-16 07:22 UTC

This package is auto-updated.

Last update: 2024-09-08 00:04:33 UTC


README

一组简单的特性,使得类在调用或访问未定义成员(属性或方法)时变得严格。

Build Status Downloads this Month Latest stable Coverage Status

这个库受到Nette\ObjectMixin的很大启发。

安装

安装Kdyby/StrictObjects的最佳方式是使用Composer

composer require kdyby/strict-objects

使用方法

只需在类中包含该特性,它就会表现出严格的行为了!

use Kdyby\StrictObjects\Scream;

class MyClass
{
    use Scream;

    // my code
}

如果您无法或不想使所有未定义属性和方法访问变得严格,您可以通过使用特定的特性来选择性地启用此行为

  • Kdyby\StrictObjects\PropertyReadScreamer:尝试读取未声明的属性时将抛出异常。
  • Kdyby\StrictObjects\PropertyWriteScreamer:尝试写入未声明的属性时将抛出异常。
  • Kdyby\StrictObjects\PropertyExistsScreamer:尝试检查未声明属性的 existence 时将抛出异常。
  • Kdyby\StrictObjects\PropertyRemovalScreamer:尝试取消设置未声明的属性时将抛出异常。
  • Kdyby\StrictObjects\InstanceMethodCallScreamer:尝试调用未定义的实例方法时将抛出异常。
  • Kdyby\StrictObjects\StaticMethodCallScreamer:尝试调用未定义的静态方法时将抛出异常。

为了方便,还有

  • Kdyby\StrictObjects\PropertyScreamer:合并所有属性访问,任何交互都会抛出异常。
  • Kdyby\StrictObjects\MethodCallScreamer:合并两种方法调用类型,所有方法都会抛出异常。
  • Kdyby\StrictObjects\Scream将所有screamer合并为一个。

主页 https://www.kdyby.org 和仓库 https://github.com/Kdyby/StrictObjects.