在doctrine 2中自动生成实体时,所有setter都会得到一个返回$ this语句:
class Foo{
//... skipping details ....
public function setFoo(\Application\Entity\SomeEntity $someValue){
$this->someValue = $someValue;
return $this;
}
}
我的问题是,当我已经使用$foo = new foo();
获取实例时,为什么我要返回$ this的实例?这背后的想法是什么?这是某种设计模式吗?
答案 0 :(得分:2)
使用“链接方法”。像:
$foo->setFoo()->setFoo1()->setFoo...
它被称为Fluent Interface。
这个想法是,当方法必须返回$this
时,您可以在返回的$this
上调用此类的其他方法。在ORM中,例如,用于构建SQL查询:$this->select()->from()->where()->....
。