在集合函数中返回this的教义意义

时间:2014-01-29 13:44:31

标签: php design-patterns doctrine-orm

在doctrine 2中自动生成实体时,所有setter都会得到一个返回$ this语句:

class Foo{
    //... skipping details ....

    public function setFoo(\Application\Entity\SomeEntity $someValue){
        $this->someValue = $someValue;
        return $this;
    }
}

我的问题是,当我已经使用$foo = new foo();获取实例时,为什么我要返回$ this的实例?这背后的想法是什么?这是某种设计模式吗?

1 个答案:

答案 0 :(得分:2)

使用“链接方法”。像:

$foo->setFoo()->setFoo1()->setFoo...

它被称为Fluent Interface

这个想法是,当方法必须返回$this时,您可以在返回的$this上调用此类的其他方法。在ORM中,例如,用于构建SQL查询:$this->select()->from()->where()->....