eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriteriaConverter::convertCriteria PHP Method

convertCriteria() public method

Generic converter of criteria into query fragments.
public convertCriteria ( eZ\Publish\Core\Persistence\Database\SelectQuery $query, eZ\Publish\API\Repository\Values\Content\Query\Criterion $criterion, array $languageSettings ) : eZ\Publish\Core\Persistence\Database\Expression
$query eZ\Publish\Core\Persistence\Database\SelectQuery
$criterion eZ\Publish\API\Repository\Values\Content\Query\Criterion
$languageSettings array
return eZ\Publish\Core\Persistence\Database\Expression
    public function convertCriteria(SelectQuery $query, Criterion $criterion, array $languageSettings)
    {
        foreach ($this->handlers as $handler) {
            if ($handler->accept($criterion)) {
                return $handler->handle($this, $query, $criterion, $languageSettings);
            }
        }
        throw new NotImplementedException('No visitor available for: ' . get_class($criterion) . ' with operator ' . $criterion->operator);
    }

Usage Example

Beispiel #1
0
 /**
  * Generate query expression for a Criterion this handler accepts.
  *
  * accept() must be called before calling this method.
  *
  * @param \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriteriaConverter $converter
  * @param \eZ\Publish\Core\Persistence\Database\SelectQuery $query
  * @param \eZ\Publish\API\Repository\Values\Content\Query\Criterion $criterion
  * @param array $languageSettings
  *
  * @return \eZ\Publish\Core\Persistence\Database\Expression
  */
 public function handle(CriteriaConverter $converter, SelectQuery $query, Criterion $criterion, array $languageSettings)
 {
     $subexpressions = array();
     foreach ($criterion->criteria as $subCriterion) {
         $subexpressions[] = $converter->convertCriteria($query, $subCriterion, $languageSettings);
     }
     return $query->expr->lOr($subexpressions);
 }
All Usage Examples Of eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriteriaConverter::convertCriteria