Валидируем почтовые индексы

В этом уроке мы научимся расширять стандартные вариаторы, в частности 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, так что мы добились того, чего хотели.
Теги:
Валидация
Добавлено: 16 Мая 2018 14:52:39 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...