是否有某种方法可以在PHP中链接方法?

时间:2017-01-03 10:25:38

标签: php oop chain

我一直在做方法链接很长一段时间,看起来我越是加入动态的链接方法,它就越像乱七八糟的东西,比如为链添加一个新功能必须与所有其他类型的链一起使用。

目前,我已经放弃了一些较旧的项目,以更简单的方式重新编写它们,我目前正在处理的是:

$psm->select('users')->where('id = 1')->run(function($row){
  // do code
});

哪个有效,它会动态创建语句(动态,因为我可以在中间添加另一个链以在语句中创建另一个子句。

我想知道的是,在创建可链接方法时是否存在某种结构,因为当然,除非运行最后一种方法,否则最终需要返回$this

我目前用于创建可链接类的简单结构如下:

class foo {
  public $temporary = '';        

  public function add($string) {
    $this->temporary .= $string;
    return $this;
  }
  public function ret() {
    return $this->temporary;
  }
}

所以,在运行时

$foo = new foo;
echo $foo->add('hello ')->add('world!')->ret();

输出" hello world!"正如您所期望的那样,但是有更好的方法来创建可链接的OOP方法吗?它只是感觉有点hacky。

"是否有某种方法可以在PHP中链接方法?" 是指最安全,最容易管理链接方法的方法。 - 这对我来说很重要,因为在发布我的代码时,我希望它采用正确的社区接受格式。

0 个答案:

没有答案