Spec-Zone.ru › Yii 1.1

CUrlValidator

Пакет system.validators
Наследование класс CUrlValidator » CValidator » CComponent
С тех пор 1.0
Исходный код framework/validators/CUrlValidator.php
CUrlValidator проверяет, является ли значение атрибута допустимым URL-адресом HTTP или HTTPS.

Общедоступные свойства

Свойство Тип Описание Определено
allowEmpty boolean указывает, может ли значение атрибута быть null или пустым. CUrlValidator
attributes array список атрибутов, подлежащих проверке. CValidator
builtInValidators array список встроенных валидаторов (имя=>класс) CValidator
defaultScheme string умолчание схемы URI. CUrlValidator
enableClientValidation boolean выполнять ли проверку на стороне клиента. CValidator
except array список сценариев, для которых валидатор не должен применяться. CValidator
message string пользовательское сообщение об ошибке. CValidator
on array список сценариев, для которых валидатор должен применяться. CValidator
pattern string регулярное выражение, используемое для проверки значения атрибута. CUrlValidator
safe boolean являются ли атрибуты, указанные с этим валидатором, безопасными для массового назначения. CValidator
skipOnError boolean пропустить эту проверку, если для текущего атрибута уже есть ошибка проверки. CValidator
validSchemes array список схем URI, которые должны считаться допустимыми. CUrlValidator
validateIDN boolean указывает, должна ли проверка учитывать IDN (международные доменные имена). CUrlValidator

Общедоступные методы

Метод Описание Определено
__call() Вызывает метод с заданным именем, который не является методом класса. CComponent
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства нулевым. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в значение null. CComponent
applyTo() Возвращает значение, указывающее, применяется ли валидатор к указанному сценарию. CValidator
asa() Возвращает объект поведения с заданным именем. CComponent
attachBehavior() Присоединяет поведение к этому компоненту. CComponent
attachBehaviors() Присоединяет список поведений к компоненту. CComponent
attachEventHandler() Присоединяет обработчик событий к событию. CComponent
canGetProperty() Определяет, может ли свойство быть прочитано. CComponent
canSetProperty() Определяет, может ли свойство быть установлено. CComponent
clientValidateAttribute() Возвращает JavaScript, необходимый для проверки на стороне клиента. CUrlValidator
createValidator() Создаёт объект валидатора. CValidator
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает присоединённое поведение. CComponent
disableBehaviors() Отключает все присоединённые поведения этого компонента. CComponent
enableBehavior() Включает присоединённое поведение. CComponent
enableBehaviors() Включает все присоединённые к этому компоненту поведения. CComponent
evaluateExpression() Вычисляет выражение PHP или обратный вызов в контексте этого компонента. CComponent
getEventHandlers() Возвращает список присоединённых обработчиков событий для события. CComponent
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли присоединённые обработчики для события с заданным именем. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
raiseEvent() Вызывает событие. CComponent
validate() Проверяет указанный объект. CValidator
validateValue() Проверяет статическое значение на предмет того, является ли оно допустимым URL-адресом. CUrlValidator

Защищённые методы

Метод Описание Определено
addError() Добавляет ошибку об указанном атрибуте к активной записи. CValidator
isEmpty() Проверяет, является ли данное значение пустым. CValidator
validateAttribute() Проверяет атрибут объекта. CUrlValidator

Подробное описание свойств

allowEmpty свойство

public boolean $allowEmpty;

указывает, может ли значение атрибута быть null или пустым. По умолчанию true, что означает, что если атрибут пуст, он считается допустимым.

defaultScheme свойство (доступно с версии 1.1.7)

public string $defaultScheme;

умолчание схемы URI. Если входные данные не содержат часть схемы, к ним будет добавлен префикс схемы по умолчанию (тем самым изменяя входные данные). По умолчанию null, что означает, что URL должен содержать часть схемы.

pattern свойство

public string $pattern;

регулярное выражение, используемое для проверки значения атрибута. С версии 1.1.7 в шаблоне может содержаться токен {schemes}, который будет заменён регулярным выражением, представляющим {@see validSchemes}.

validSchemes свойство (доступно с версии v1.1.7)

public array $validSchemes;

список схем URI, которые должны считаться допустимыми. По умолчанию http и https считаются допустимыми схемами.

validateIDN свойство (доступно с версии v1.1.13)

public boolean $validateIDN;

указывает, должна ли процедура проверки учитывать IDN (международные доменные имена). Значение по умолчанию — false, что означает, что проверка URL-адресов, содержащих IDN, всегда будет провалена.

Подробное описание методов

clientValidateAttribute() метод (доступен с версии v1.1.7)

public string clientValidateAttribute(CModel $object, string $attribute)
$object CModel объект данных, который проверяется
$attribute строка имя атрибута, который необходимо проверить.
{return} строка скрипт проверки на стороне клиента.
Исходный код: framework/validators/CUrlValidator.php#108 (показать)
public function clientValidateAttribute($object,$attribute)
{
    if(
$this->validateIDN)
    {
        
Yii::app()->getClientScript()->registerCoreScript('punycode');
        
// punycode.js works only with the domains - so we have to extract it before punycoding
        
$validateIDN='
var info = value.match(/^(.+:\/\/|)([^/]+)/);
if (info)
value = info[1] + punycode.toASCII(info[2]);
'
;
    }
    else
        
$validateIDN='';

    
$message=$this->message!==null ? $this->message : Yii::t('yii','{attribute} is not a valid URL.');
    
$message=strtr($message, array(
        
'{attribute}'=>$object->getAttributeLabel($attribute),
    ));

    if(
strpos($this->pattern,'{schemes}')!==false)
        
$pattern=str_replace('{schemes}','('.implode('|',$this->validSchemes).')',$this->pattern);
    else
        
$pattern=$this->pattern;

    
$js="
$validateIDN
if(!value.match(
$pattern)) {
messages.push("
.CJSON::encode($message).");
}
"
;
    if(
$this->defaultScheme!==null)
    {
        
$js="
if(!value.match(/:\\/\\//)) {
value="
.CJSON::encode($this->defaultScheme)."+'://'+value;
}
$js
"
;
    }

    if(
$this->allowEmpty)
    {
        
$js="
if(jQuery.trim(value)!='') {
$js
}
"
;
    }

    return 
$js;
}

Возвращает JavaScript, необходимый для выполнения проверки на стороне клиента.

См. также

  • CActiveForm::enableClientValidation

validateAttribute() метод

protected void validateAttribute(CModel $object, string $attribute)
$object CModel валидируемый объект
$attribute строка валидируемый атрибут
Исходный код: framework/validators/CUrlValidator.php#57 (показать)
protected function validateAttribute($object,$attribute)
{
    
$value=$object->$attribute;
    if(
$this->allowEmpty && $this->isEmpty($value))
        return;
    if((
$value=$this->validateValue($value))!==false)
        
$object->$attribute=$value;
    else
    {
        
$message=$this->message!==null?$this->message:Yii::t('yii','{attribute} is not a valid URL.');
        
$this->addError($object,$attribute,$message);
    }
}

Проверяет атрибут объекта. Если обнаружена ошибка, сообщение об ошибке добавляется к объекту.

validateValue() метод (доступен с версии v1.1.1)

public mixed validateValue(string $value)
$value строка валидируемое значение
{return} смешанный тип false, если значение не является допустимым URL-адресом, в противном случае — возможно изменённое значение ({@see defaultScheme})
Исходный код: framework/validators/CUrlValidator.php#79 (показать)
public function validateValue($value)
{
    if(
is_string($value) && strlen($value)<2000)  // make sure the length is limited to avoid DOS attacks
    
{
        if(
$this->defaultScheme!==null && strpos($value,'://')===false)
            
$value=$this->defaultScheme.'://'.$value;

        if(
$this->validateIDN)
            
$value=$this->encodeIDN($value);

        if(
strpos($this->pattern,'{schemes}')!==false)
            
$pattern=str_replace('{schemes}','('.implode('|',$this->validSchemes).')',$this->pattern);
        else
            
$pattern=$this->pattern;

        if(
preg_match($pattern,$value))
            return 
$this->validateIDN ? $this->decodeIDN($value) : $value;
    }
    return 
false;
}

Проверяет статическое значение на предмет того, является ли оно допустимым URL-адресом. Обратите внимание, что этот метод не учитывает свойство allowEmpty. Этот метод предоставлен для того, чтобы вы могли вызывать его напрямую, не прибегая к механизму правил проверки модели.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CUrlValidator

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API