protected function _conjugate($part, $append, $conjunction, $types)
{
$expression = $this->_parts[$part] ?: $this->newExpr();
if (empty($append)) {
$this->_parts[$part] = $expression;
return;
}
if ($expression->isCallable($append)) {
$append = $append($this->newExpr(), $this);
}
if ($expression->tieWith() === $conjunction) {
$expression->add($append, $types);
} else {
$expression = $this->newExpr()->tieWith($conjunction)->add([$append, $expression], $types);
}
$this->_parts[$part] = $expression;
$this->_dirty();
}