Beispiel #1
0
 /**
  * @return array[]
  */
 public function parseProvider()
 {
     //prepare provider values for all operators
     $provider = [];
     foreach (Operator::getNullableOperators() as $operator) {
         $provider[] = [$operator, [$operator, null]];
     }
     $operators = array_merge(Operator::getEqualityOperators(), Operator::getOrderableOperators(), Operator::getLikeOperators());
     foreach ($operators as $operator) {
         $value = (string) rand(0, 100);
         $provider[] = [sprintf('%s%s', $operator, $value), [$operator, $value]];
     }
     return $provider;
 }
Beispiel #2
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];
 }
Beispiel #3
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];
 }