ybaidukuai 发表于 2017-3-21 11:49:45

PHP连贯接口

近期,看到很多人都在讨论连贯接口这个东西,仔细想想,这其实没有什么,用的早的如javascript中的jQuery,都早就在用了。只是PHP最近被人翻出来炒一炒而已。
  但不得不说的是,连贯接口也有它自身的好处,即可以让代码更清晰化,比如Zend的Select类里面,生成一个SQL并执行就是那样的直观:
$db = new Zend_Db(); //这是随便写的,主要是为了显示一下
$db->select()
->from('tablename')
->where('id = ?' , $id)
->orwhere('name != ?' , $name);
//最后也可以调用一下来生成这个SQL
$sql = $db->__toString();

自从到了PHP5,$a = new Object() ; $b = $a; 这个$b 直接变成了取址,而不是COPY后,这样的连贯接口比之用数组来实现效率是高上了很多,毕竟相对占用内存会少一点吧?(估计,没有实测过)。

不过,这东西确实也就和AJAX一样,属于老瓶装新酒。以前类里的函数是返回一个值,或者true等等等等,现在是return $this;直接返回自身(不知道这样效率是提升还是下降。),但总体来说,这个还是一个很不错的方法。
连贯接口很简单,写起来也很美,但是却遇到一个棘手的问题,类似ZendStudio,Eclipse之类的IDE似乎并不支持连贯接口的自动提示?其实结局的方法也很简单,只要像上面的代码注释那样,遵循PHPDoc的代码注释规范,在@return后注明返回的对象类型,这些IDE也同样能实现自动提示。
页: [1]
查看完整版本: PHP连贯接口