概念
流接口模式(Fluent Interface)用来编写易于阅读的代码,就像自然语言一样(如英语),最关键的一步是:操作函数中必须 return $this,即返回本对象,以调用后续的方法和使用
场景
PHPUnit 使用连贯接口来创建 mock 对象
Yii 框架:CDbCommand 与 CActiveRecord 也使用此模式
TP框架中常见的数据库链式操作
示例
<?php class Sql { /** * @var array */ private $fields = []; /** * @var array */ private $from = []; /** * @var array */ private $where = []; public function select(array $fields): Sql { $this->fields = $fields; return $this; } public function from(string $table, string $alias): Sql { $this->from[] = $table.' AS '.$alias; return $this; } public function where(string $condition): Sql { $this->where[] = $condition; return $this; } public function __toString(): string { return sprintf( 'SELECT %s FROM %s WHERE %s', join(', ', $this->fields), join(', ', $this->from), join(' AND ', $this->where) ); } }
《本文》有 0 条评论