예제 #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;
 }
예제 #2
0
 /**
  * Get operators
  * @param  integer $classFlags
  * @return integer Operator class
  * @throws \Exception When invalid operator class flags are given
  */
 public static function getByClassFlags($classFlags)
 {
     $operators = [];
     if (($classFlags & Operator::CLASS_COMPARABLE) !== 0) {
         $operators = array_merge($operators, Operator::getEqualityOperators());
     }
     if (($classFlags & Operator::CLASS_ORDERABLE) !== 0) {
         $operators = array_merge($operators, Operator::getOrderableOperators());
     }
     if (($classFlags & Operator::CLASS_NULLABLE) !== 0) {
         $operators = array_merge($operators, Operator::getNullableOperators());
     }
     if (($classFlags & Operator::CLASS_LIKE) !== 0) {
         $operators = array_merge($operators, Operator::getLikeOperators());
     }
     if (($classFlags & Operator::CLASS_IN_ARRAY) !== 0) {
         $operators = array_merge($operators, Operator::getInArrayOperators());
     }
     if (empty($operators) && ($classFlags & Operator::CLASS_JSONOBJECT) === 0) {
         throw new \Exception('Invalid operator class flags');
     }
     return array_unique($operators);
 }