Returns a list of available validation rules, or the configuration details of a single rule.
public static rules ( string $name = null ) : mixed | ||
$name | string | Optional name of a rule to get the details of. If not specified, an array of all available rule names is returned. Otherwise, returns the details of a single rule. This can be a regular expression string, a closure object, or an array of available rule formats made up of string regular expressions, closures, or both. |
Результат | mixed | Returns either an single array of rule names, or the details of a single rule. |
/** * Tests that the rules state is reset when calling `Validator::__init()`. */ public function testStateReset() { $this->assertNull(Validator::rules('foo')); Validator::add('foo', '/foo/'); $this->assertEqual('/foo/', Validator::rules('foo')); Validator::__init(); $this->assertNull(Validator::rules('foo')); }
* * The regular expression for a locale aware rule is retrieved using the `Catalog` * class. To add support for more locales and rules have a look at the `li3_lldr` * and `li3_cldr` projects. * * Further enables support for multibyte strings through the `Multibyte` class by * overwriting rules (currently just `lengthBetween`). * * @link https://github.com/UnionOfRAD/li3_lldr * @link https://github.com/UnionOfRAD/li3_cldr * @see lithium\g11n\Catalog * @see lithium\g11n\Multibyte * @see lithium\util\Validator */ foreach (array('phone', 'postalCode', 'ssn') as $name) { $regex = Validator::rules($name); Validator::add($name, function ($value, $format, $options) use($name, $regex) { if ($format !== 'any') { $regex = Catalog::read(true, "validation.{$name}", $format); } if (!$regex) { $message = "Cannot find regular expression for validation rule `{$name}` "; $message .= "using format/locale `{$format}`."; throw new RuntimeException($message); } return preg_match($regex, $value); }); } Validator::add('lengthBetween', function ($value, $format, $options) { $length = Multibyte::strlen($value); $options += array('min' => 1, 'max' => 255);