Esempio n. 1
0
 /**
  * @param  string $operatorValueString
  * @return string[2] [operator, operand]
  * @example
  * ```php
  * list($operator, $operand) = Operator::parse('>=5');
  * ```
  */
 public static function parse($operatorValueString)
 {
     $operator = Operator::OPERATOR_EQUAL;
     $value = $operatorValueString;
     $operators = implode('|', array_merge(Operator::getOrderableOperators(), Operator::getLikeOperators(), Operator::getInArrayOperators()));
     if (!!preg_match('/^(' . $operators . ')[\\ ]{0,1}(.+)$/', $operatorValueString, $matches)) {
         return [$matches[1], $matches[2]];
     } elseif (!!preg_match('/^(' . implode('|', Operator::getNullableOperators()) . ')$/', $operatorValueString, $matches)) {
         return [$matches[1], null];
     }
     return [$operator, $value];
 }
Esempio n. 2
0
 /**
  * @param  string $operatorValueString
  * @return string[2] [operator, operand]
  * @example
  * ```php
  * list($operator, $operand) = Operator::parse('>=5');
  * ```
  * @todo use aliases
  */
 public static function parse($operatorValueString)
 {
     $operator = Operator::EQUAL;
     $value = $operatorValueString;
     $operators = implode('|', array_merge(Operator::getOrderableOperators(), Operator::getLikeOperators(), Operator::getInArrayOperators()));
     if (!!preg_match('/^(' . implode('|', Operator::getInOperators()) . ')[\\ ]{0,1}(.+)$/', $operatorValueString, $matches)) {
         //handle IN operators
         //values MUST be a list
         $values = array_map('trim', explode(',', $matches[2]));
         return [$matches[1], $values];
     } elseif (!!preg_match('/^(' . $operators . ')[\\ ]{0,1}(.+)$/', $operatorValueString, $matches)) {
         return [$matches[1], $matches[2]];
     } elseif (!!preg_match('/^(' . implode('|', Operator::getNullableOperators()) . ')$/', $operatorValueString, $matches)) {
         return [$matches[1], null];
     }
     return [$operator, $value];
 }