Creates an instance of the given rule name
public createRuleInstance ( string $name, mixed $parameters = [] ) : Fuel\Validation\RuleInterface | ||
$name | string | |
$parameters | mixed | |
return | Fuel\Validation\RuleInterface |
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()); }
/** * 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); }
/** * 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); } } }