respect-validation/library/Rules/Zend.php
Henrique Moody da193b75e0 Use PSR-2 standard
Most changes was made by php-cs-fixer.
Also removes unused `RecursiveTreeIterator` class.
2015-01-08 00:44:12 -02:00

59 lines
1.5 KiB
PHP

<?php
namespace Respect\Validation\Rules;
use ReflectionClass;
use Respect\Validation\Exceptions\ComponentException;
class Zend extends AbstractRule
{
protected $messages = array();
protected $zendValidator;
public function __construct($validator, $params = array())
{
if (is_object($validator)) {
return $this->zendValidator = $validator;
}
if (!is_string($validator)) {
throw new ComponentException('Invalid Validator Construct');
}
if (false === stripos($validator, 'Zend')) {
$validator = "Zend\Validator\\{$validator}";
} else {
$validator = "\\{$validator}";
}
$zendMirror = new ReflectionClass($validator);
if ($zendMirror->hasMethod('__construct')) {
$this->zendValidator = $zendMirror->newInstanceArgs($params);
} else {
$this->zendValidator = $zendMirror->newInstance();
}
}
public function assert($input)
{
$exceptions = array();
$validator = clone $this->zendValidator;
if ($validator->isValid($input)) {
return true;
} else {
foreach ($validator->getMessages() as $m) {
$exceptions[] = $this->reportError($m, get_object_vars($this));
}
}
throw $this->reportError($input)->setRelated($exceptions);
}
public function validate($input)
{
$validator = clone $this->zendValidator;
return $validator->isValid($input);
}
}