0
点赞
收藏
分享

微信扫一扫

php中的流接口模式

一叶轻舟okok 2022-11-21 阅读 77

概念

 流接口模式(Fluent Interface)用来编写易于阅读的代码,就像自然语言一样(如英语)

场景

 

Doctrine2 的 QueryBuilder,就像下面例子中类似
PHPUnit 使用连贯接口来创建 mock 对象
Yii 框架:CDbCommand 与 CActiveRecord 也使用此模式

 

示例

<?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 条评论