本文整理汇总了PHP中Zend\Validator\ValidatorChain::isValid方法的典型用法代码示例。如果您正苦于以下问题:PHP ValidatorChain::isValid方法的具体用法?PHP ValidatorChain::isValid怎么用?PHP ValidatorChain::isValid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend\Validator\ValidatorChain
的用法示例。
在下文中一共展示了ValidatorChain::isValid方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
/**
* Constructor.
*
* @param string $host OPTIONAL Hostname of remote connection (default: 127.0.0.1)
* @param integer $port OPTIONAL Port number (default: null)
* @throws Exception\RuntimeException
*/
public function __construct($host = '127.0.0.1', $port = null)
{
$this->validHost = new Validator\ValidatorChain();
$this->validHost->attach(new Validator\Hostname(Validator\Hostname::ALLOW_ALL));
if (!$this->validHost->isValid($host)) {
throw new Exception\RuntimeException(implode(', ', $this->validHost->getMessages()));
}
$this->host = $host;
$this->port = $port;
}
示例2: testCanAttachMultipleValidatorsOfTheSameTypeAsDiscreteInstances
/**
* @group ZF-412
*/
public function testCanAttachMultipleValidatorsOfTheSameTypeAsDiscreteInstances()
{
$this->validator->addByName('Callback', array('callback' => function ($value) {
return true;
}, 'messages' => array('callbackValue' => 'This should not be seen in the messages')));
$this->validator->addByName('Callback', array('callback' => function ($value) {
return false;
}, 'messages' => array('callbackValue' => 'Second callback trapped')));
$this->assertEquals(2, count($this->validator));
$validators = $this->validator->getValidators();
$compare = null;
foreach ($validators as $validator) {
$this->assertNotSame($compare, $validator);
$compare = $validator;
}
$this->assertFalse($this->validator->isValid('foo'));
$messages = $this->validator->getMessages();
$found = false;
$test = 'Second callback trapped';
foreach ($messages as $messageSet) {
if (is_string($messageSet) && $messageSet === $test) {
$found = true;
break;
}
if (is_array($messageSet) && in_array('Second callback trapped', $messageSet)) {
$found = true;
break;
}
}
$this->assertTrue($found);
}
示例3: testAllowsPrependingValidatorsByName
public function testAllowsPrependingValidatorsByName()
{
$this->validator->addValidator($this->getValidatorTrue())->prependByName('NotEmpty', array(), true);
$this->assertFalse($this->validator->isValid(''));
$messages = $this->validator->getMessages();
$this->assertArrayHasKey('isEmpty', $messages);
}
示例4: __construct
/**
* Constructor.
*
* @param string $host OPTIONAL Hostname of remote connection (default: 127.0.0.1)
* @param integer $port OPTIONAL Port number (default: null)
* @throws \Zend\Mail\Protocol\Exception
* @return void
*/
public function __construct($host = '127.0.0.1', $port = null)
{
$this->_validHost = new Validator\ValidatorChain();
$this->_validHost->addValidator(new HostnameValidator(HostnameValidator::ALLOW_ALL));
if (!$this->_validHost->isValid($host)) {
throw new Protocol\Exception\RuntimeException(implode(', ', $this->_validHost->getMessages()));
}
$this->_host = $host;
$this->_port = $port;
}
示例5: __construct
/**
* Constructor.
*
* @param string $host OPTIONAL Hostname of remote connection (default: 127.0.0.1)
* @param integer $port OPTIONAL Port number (default: null)
* @throws \Zend\Mail\Protocol\Exception
* @return void
*/
public function __construct($host = '127.0.0.1', $port = null)
{
$this->_validHost = new Validator\ValidatorChain();
$this->_validHost->addValidator(new HostnameValidator\Hostname(HostnameValidator\Hostname::ALLOW_ALL));
if (!$this->_validHost->isValid($host)) {
throw new Exception(join(', ', $this->_validHost->getMessages()));
}
$this->_host = $host;
$this->_port = $port;
}
示例6: isValid
/**
* Returns true if is an array with valid language keys and optionnaly valid values
* @param array $value
* @return bool
*/
public function isValid($value)
{
if (!is_array($value)) {
$this->error(self::NOT_ARRAY);
return false;
}
$this->messageTemplates = array_merge($this->messageTemplates, $this->languageValidator->getMessageTemplates());
foreach ($value as $language => $v) {
if (!$this->languageValidator->isValid($language)) {
return false;
}
if ($this->chain) {
if (!$this->chain->isValid($v)) {
return false;
}
}
}
return true;
}
示例7: isValid
public function isValid($value, array $context = [])
{
if (!isset($context['name_of_other_field'])) {
throw new Exception\RuntimeException(sprintf('The required \'name_of_other_field\' context value was not found in validator \'%s\'.', __CLASS__));
}
if (1234 === $context['name_of_other_field']) {
$validator = new Validator\ValidatorChain();
$validator->attach(new Validator\StringLength(['min' => 8, 'max' => 12]));
$validator->attach(new Validator\EmailAddress());
return $validator->isValid($value);
}
return true;
}
示例8: __construct
/**
* @param array $value
*
*/
protected function __construct(array $value)
{
/** @var \AGmakonts\STL\String\String $name */
$name = $value[0];
$nameValue = $name->value();
$validatorChain = new ValidatorChain();
$validatorChain->attach(new AlphaValidator(TRUE));
$validatorChain->attach(new StringLength(['min' => self::MINIMUM_LENGTH]));
$validatorChain->attach(new NotEmpty());
if (FALSE === $validatorChain->isValid($nameValue)) {
throw new InvalidNameException($name, $validatorChain->getMessages());
}
$this->name = $name;
}
示例9: _validateRule
/**
* @param array $validatorRule
* @return void
*/
protected function _validateRule(array $validatorRule)
{
/**
* Get one or more data values from input, and check for missing fields.
* Apply defaults if fields are missing.
*/
$data = array();
foreach ((array) $validatorRule[self::FIELDS] as $key => $field) {
if (array_key_exists($field, $this->_data)) {
$data[$field] = $this->_data[$field];
} else {
if (isset($validatorRule[self::DEFAULT_VALUE])) {
/** @todo according to this code default value can't be an array. It has to be reviewed */
if (!is_array($validatorRule[self::DEFAULT_VALUE])) {
// Default value is a scalar
$data[$field] = $validatorRule[self::DEFAULT_VALUE];
} else {
// Default value is an array. Search for corresponding key
if (isset($validatorRule[self::DEFAULT_VALUE][$key])) {
$data[$field] = $validatorRule[self::DEFAULT_VALUE][$key];
} else {
if ($validatorRule[self::PRESENCE] == self::PRESENCE_REQUIRED) {
// Default value array is provided, but it doesn't have an entry for current field
// and presence is required
$this->_missingFields[$validatorRule[self::RULE]][] = $this->_getMissingMessage($validatorRule[self::RULE], $field);
}
}
}
} else {
if ($validatorRule[self::PRESENCE] == self::PRESENCE_REQUIRED) {
$this->_missingFields[$validatorRule[self::RULE]][] = $this->_getMissingMessage($validatorRule[self::RULE], $field);
}
}
}
}
/**
* If any required fields are missing, break the loop.
*/
if (isset($this->_missingFields[$validatorRule[self::RULE]]) && count($this->_missingFields[$validatorRule[self::RULE]]) > 0) {
return;
}
/**
* Evaluate the inputs against the validator chain.
*/
if (count((array) $validatorRule[self::FIELDS]) > 1) {
if (!$validatorRule[self::ALLOW_EMPTY]) {
$emptyFieldsFound = false;
$errorsList = array();
$messages = array();
foreach ($data as $fieldKey => $field) {
$notEmptyValidator = $this->_getValidator('NotEmpty');
$notEmptyValidator->setMessage($this->_getNotEmptyMessage($validatorRule[self::RULE], $fieldKey));
if (!$notEmptyValidator->isValid($field)) {
foreach ($notEmptyValidator->getMessages() as $messageKey => $message) {
if (!isset($messages[$messageKey])) {
$messages[$messageKey] = $message;
} else {
$messages[] = $message;
}
}
$errorsList[] = $notEmptyValidator->getErrors();
$emptyFieldsFound = true;
}
}
if ($emptyFieldsFound) {
$this->_invalidMessages[$validatorRule[self::RULE]] = $messages;
$this->_invalidErrors[$validatorRule[self::RULE]] = array_unique(call_user_func_array('array_merge', $errorsList));
return;
}
}
if (!$validatorRule[self::VALIDATOR_CHAIN]->isValid($data)) {
$this->_invalidMessages[$validatorRule[self::RULE]] = $validatorRule[self::VALIDATOR_CHAIN]->getMessages();
$this->_invalidErrors[$validatorRule[self::RULE]] = $validatorRule[self::VALIDATOR_CHAIN]->getErrors();
return;
}
} else {
if (count($data) > 0) {
// $data is actually a one element array
$fieldNames = array_keys($data);
$fieldName = reset($fieldNames);
$field = reset($data);
$failed = false;
if (!is_array($field)) {
$field = array($field);
}
$notEmptyValidator = $this->_getValidator('NotEmpty');
$notEmptyValidator->setMessage($this->_getNotEmptyMessage($validatorRule[self::RULE], $fieldName));
if ($validatorRule[self::ALLOW_EMPTY]) {
$validatorChain = $validatorRule[self::VALIDATOR_CHAIN];
} else {
$validatorChain = new Validator\ValidatorChain();
$validatorChain->addValidator($notEmptyValidator, true);
$validatorChain->addValidator($validatorRule[self::VALIDATOR_CHAIN]);
}
foreach ($field as $value) {
if ($validatorRule[self::ALLOW_EMPTY] && !$notEmptyValidator->isValid($value)) {
//.........这里部分代码省略.........
示例10: areTokensValid
/**
* @param array $data
*
* @return bool
*/
private function areTokensValid(array $data)
{
$validatorChain = new ValidatorChain();
$validatorChain->attach(new Regex('/^\\{[A-Z]+\\}$/'));
foreach ($data as $token => $value) {
if (FALSE === $validatorChain->isValid($token)) {
return FALSE;
}
}
return TRUE;
}