【问题标题】:Adding two of the same observer in Fuelphp (ORM)在 Fuelphp (ORM) 中添加两个相同的观察者
【发布时间】:2015-08-22 05:07:06
【问题描述】:

无论如何要在FuelPHP(ORM)中的模型中添加两​​个相同类型的观察者。 (实际上我会使用自定义观察者而不是CreatedAt,如下所示)

protected static $_observers = array(
    'Orm\\Observer_CreatedAt' => array(
    ...
    ),
    'Orm\\Observer_CreatedAt' => array(
    ...
    ),
);

显然上述方法不起作用,因为只能在数组中设置给定键中的一个。是否有任何解决方法可以避免复制观察者文件本身?

【问题讨论】:

    标签: php fuelphp fuelphp-orm


    【解决方案1】:

    不,当前的 ORM 代码不允许您添加同一类的多个观察者。

    【讨论】:

    • 除了复制类文件并给它起一个稍微不同的名称之外,没有任何破解方法吗?
    • 你可以像class MyFakeObserver extends MyTargetObserver一样创建第二个观察者,然后在模型中同时使用这两个观察者,这不是很干净,但可以让你使用同一个观察者两次。
    • 想到的另一件事是更新您的自定义观察者以便能够一次处理多个属性,从而无需再次将其添加到模型中。
    • 扩展肯定比直接处理文件更干净。编辑它处理多个的观察者也很好。如果框架允许这样做就好了(就像 CakePHP 做的 IIRC 一样)。感谢您的帮助!
    • 该问题将在即将发布的 v2 中解决,因为内部处理观察者的方式将发生变化。不幸的是,我们无法在 v1 中更改它,因为它会产生巨大的向后兼容性问题,就像我希望能够使 v1 orm 更明智一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    相关资源
    最近更新 更多