Валидируем почтовые индексы
В этом уроке мы научимся расширять стандартные вариаторы, в частности Zend_Validate_PostCode.
library/App/Validate/PostCode.php:
<?php
/**
* @see Zend_Validate_PostCode
*/
require_once 'Zend/Validate/PostCode.php';
class App_Validate_PostCode extends Zend_Validate_PostCode
{
public function isValid($value)
{
$this->_setValue($value);
if (!is_string($value) && !is_int($value)) {
$this->_error(self::INVALID);
return false;
}
if ($this->getLocale() == 'en_GB') {
$value = strtoupper(str_replace(' ', '', $value));
$format = "/^([A-PR-UWYZ]([0-9]([0-9]|[A-HJKSTUW])?|[A-HK-Y][0-9]"
. "([0-9]|[ABEHMNPRVWXY])?)[0-9][ABD-HJLNP-UW-Z]{2}|GIR0AA)$/";
} else {
$format = $this->getFormat();
}
if (!preg_match($format, $value)) {
$this->_error(self::NO_MATCH);
return false;
}
return true;
}
}
Тут на лицо превосходная работа системы загрузки плагинов в ZF. Данный код, просто перезаписывает функциональность Zend_Validate_PostCode, так что мы добились того, чего хотели.
Комментарии:
Нету комментариев для вывода...