createRuleInstance() public method

Creates an instance of the given rule name
Since: 2.0
public createRuleInstance ( string $name, mixed $parameters = [] ) : Fuel\Validation\RuleInterface
$name string
$parameters mixed
return Fuel\Validation\RuleInterface
Beispiel #1
0
 public function testCreateRuleInstanceWithGlobalMessage()
 {
     $message = 'Test message';
     $ruleName = 'test';
     $class = '\\DummyAbstractRule';
     $this->object->setGlobalMessage($ruleName, $message);
     $this->object->addCustomRule($ruleName, $class);
     $instance = $this->object->createRuleInstance($ruleName);
     $this->assertEquals($message, $instance->getMessage());
 }
Beispiel #2
0
 /**
  * Adds an individual rule for the given field to the given validator.
  * If the $ruleName is numeric the function will assume that $params is the rule name and that there are no
  * parameters.
  *
  * @param string     $fieldName
  * @param string|int $ruleName
  * @param mixed      $params
  * @param Validator  $validator
  *
  * @since 2.0
  */
 protected function addFieldRule($fieldName, $ruleName, $params, Validator $validator)
 {
     // If $ruleName is numeric assume that $params is the name and there are no actual parameters
     if (is_numeric($ruleName)) {
         $ruleName = $params;
         $params = [];
     }
     // Create and add the rule
     $ruleInstance = $validator->createRuleInstance($ruleName, $params);
     $validator->addRule($fieldName, $ruleInstance);
 }
Beispiel #3
0
 /**
  * Builds validation for a class
  *
  * @param string    $class
  * @param Validator $validator
  */
 public function buildValidation($class, Validator $validator)
 {
     $classMetadata = $this->metadataFactory->getMetadataForClass($class);
     foreach ($classMetadata->propertyMetadata as $propertyMetadata) {
         $validator->addField($propertyMetadata->name, $propertyMetadata->label);
         foreach ($propertyMetadata->rules as $name => $arguments) {
             if (is_int($name)) {
                 $name = $arguments;
                 $arguments = [];
             }
             $rule = $validator->createRuleInstance($name, [$arguments]);
             $validator->addRule($propertyMetadata->name, $rule);
         }
     }
 }