【问题标题】:PHP observer pattern / magic setter / proxingPHP 观察者模式/魔术设置器/代理
【发布时间】:2011-02-07 10:29:47
【问题描述】:

我正在寻找一种方法来监视我的班级中的变量何时被设置。

例如,如果我有以下课程:

class MyClass  {
    public $myVariable;
} 

我在我的代码中的某处做:

$class = new MyClass();
$class->myVariable = "value";

我希望能够“挂钩”到 myVariable 的设置器中。所以当我调用 $class->myVariable = "Value";将启动一个过滤器,检查新值是否等于“Value”,如果是,则抛出异常。

【问题讨论】:

    标签: php proxy-classes magic-methods observer-pattern


    【解决方案1】:

    像往常一样将您的属性定义为私有或受保护。

    然后使用魔术方法__set() 捕获访问权限。

    最好的问候

    拉斐尔

    【讨论】:

    • 强制使用私有属性只是为了实现一些验证在我看来是不正确的(特别是如果私有关键字或多或少被覆盖)。这是一个可行的解决方法,但不幸的是不能满足我的需要。
    • 什么?这是一个标准的 OOP 范式......我不明白你的意思
    • 将属性设置为私有,然后允许稍后从类外部访问它。
    猜你喜欢
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 2016-02-20
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    相关资源
    最近更新 更多