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->getConjunction() === $conjunction) {
            $expression->add($append, $types);
        } else {
            $expression = $this->newExpr()
                ->setConjunction($conjunction)
                ->add([$expression, $append], $types);
        }

        $this->_parts[$part] = $expression;
        $this->_dirty();
    }
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->getConjunction() === $conjunction) {
            $expression->add($append, $types);
        } else {
            $expression = $this->newExpr()
                ->setConjunction($conjunction)
                ->add([$expression, $append], $types);
        }

        $this->_parts[$part] = $expression;
        $this->_dirty();
    }
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 -> getConjunction ( ) === $ conjunction ) { $ expression -> add ( $ append , $ types ) ; } else { $ expression = $ this -> newExpr ( ) -> setConjunction ( $ conjunction ) -> add ( [ $ expression , $ append ] , $ types ) ; } $ this -> _parts [ $ part ] = $ expression ; $ this -> _dirty ( ) ; }
Helper function used to build conditions by composing QueryExpression objects.

@param string $part Name of the query part to append the new part to
@param string|null|array|\Cake\Database\ExpressionInterface|callable $append Expression or builder function to append.
@param string $conjunction type of conjunction to be used to operate part
@param array $types associative array of type names used to bind values to query
@return void
Helper function used to build conditions by composing QueryExpression objects .