rules() 공개 정적인 메소드

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.
예제 #1
0
 /**
  * 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'));
 }
예제 #2
0
 *
 * 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);