我今天遇到了一些奇怪的行为,围绕从getter方法的返回值创建一个对象。
首先我尝试了这个
$productMapper = new $this->getDbMapper();
这给了我一个未定义的属性:$ getDbMapper error。
从它的外观来看,它试图将$ getDbMapper作为类属性访问,然后使用()
进行类实例化而不是方法(?)。
我在代码的另一部分也有这个问题,其中类采用构造函数参数。
这是一个很好的时间来看看顶部的某种工厂模式还是我错过了什么?
答案 0 :(得分:0)
我发现了一个修复,我对此并不是特别满意
$mapper = $this->getDbMapper();
$productMapper = new $mapper();
// With a class constructor
$form = $this->getForm();
$form = new $form($productData);