PHP / CodeIgniter 2-仅针对特定对象调用对象的__get()方法

时间:2018-10-18 09:25:05

标签: php codeigniter codeigniter-2

我正在处理旧的CodeIgniter 2代码,只能通过在其顶部添加一层来进行更改,因此我受到限制。

通常在代码中,甚至在初始化之前就调用属性$this->secondary_db,例如:

$this->secondary_db->get_all();

由于secondary_db为空,这显然会导致致命错误。

因此,我想做的是实现魔术__get($name)方法,但仅适用于secondary_db,因此,仅当未通过在魔术中指定来定义$this->secondary_db时,才使用魔术方法方法:

if ($name == 'secondary_db') { ... load db in a specific way ... }

但是,它会在不依赖__get()的某个地方的其他代码中产生其他致命错误,例如:

  

对重载属性Some_Controller :: $ benchmark的间接修改无效

     

无法通过引用分配system / core / Controller.php中的重载对象

还有另一种方法可以做到这一点,或者实现我可能已经忘记的事情吗?可以使用特征吗?

注意:我不能在构造函数中初始化secondary_db,因为它的值并不总是相同。

0 个答案:

没有答案