for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Noitran\RQL\Processors\Eloquent;
use Illuminate\Database\Eloquent\Builder;
use Noitran\RQL\Contracts\Expression\ExprInterface;
use Noitran\RQL\Contracts\Processor\ApplicableInterface;
use Noitran\RQL\Contracts\Processor\ProcessorInterface;
/**
* Class ApplyComparison
*/
class ApplyComparison implements ApplicableInterface
{
* @inheritdoc
public function supports(ProcessorInterface $processor, ExprInterface $exprClass): bool
/** @var EloquentProcessor $processor */
if (! in_array($exprClass->getExpression(), $processor::getComparisonMethods(), false)) {
return false;
}
return true;
public function apply(ProcessorInterface $processor, ExprInterface $exprClass): Builder
$method = $processor::getMethodMap()[$exprClass->getExpression()];
return $processor->getBuilder()->{$method}(
$exprClass->getColumn(),
$exprClass->getOperator(),
$exprClass->getValue()
);