ModuleValidate

Package engine.modules.validate
Inheritance class ModuleValidate » Module » LsObject
Since 1.0
Source Code /engine/modules/validate/Validate.class.php
Модуль Validate Выполняет валидацию данных по определенным правилам. Поддерживает как обычную валидацию данных:
if (!$this->Validate_Validate('url','http://livestreet.ru')) {
	var_dump($this->Validate_GetErrors());
}
так и валидацию данных сущности:
class PluginTest_ModuleMain_EntityTest extends Entity {
// Определяем правила валидации
	protected $aValidateRules=array(
		array('login, name','string','max'=>7,'min'=>'3'),
		array('title','my','on'=>'register'),
	);

	public function ValidateMy($sValue,$aParams) {
		if ($sValue!='Мега заголовок') {
			return 'Ошибочный заголовок';
		}
		return true;
	}
}

// Валидация
$oObject=Engine::GetEntity('PluginTest_ModuleMain_EntityTest');
$oObject->setLogin('bolshoi login');
$oObject->setTitle('zagolovok');

if ($oObject->_Validate()) {
	var_dump("OK");
} else {
	var_dump($oObject->_getValidateErrors());
}

Protected Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
aErrors array Список ошибок при валидации, заполняется только если использовать валидацию напрямую без сущности ModuleValidate
bIsInit bool Указывает на то, была ли проведенна инициализация модуля Module
oEngine Engine Объект ядра Module

Public Methods

Hide inherited methods

MethodDescriptionDefined By
AddError() Добавляет ошибку в список ModuleValidate
ClearErrors() Очищает список ошибок ModuleValidate
CreateValidator() Создает и возвращает объект валидатора ModuleValidate
GetErrorLast() Возвращает последнюю ошибку после валидации ModuleValidate
GetErrors() Возвращает список ошибок после валидации ModuleValidate
HasErrors() Возвращает факт наличия ошибки после валидации ModuleValidate
Init() Инициализируем модуль ModuleValidate
SetInit() Помечает модуль как инициализированный Module
Shutdown() Метод срабатывает при завершении работы ядра Module
Validate() Запускает валидацию данных ModuleValidate
__call() Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля Module
__construct() При создании модуля передаем объект ядра Module
isInit() Возвращает значение флага инициализации модуля Module

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
__clone() Блокируем копирование/клонирование объекта Module

Property Details

aErrors property
protected array $aErrors;

Список ошибок при валидации, заполняется только если использовать валидацию напрямую без сущности

Method Details

AddError() method
public void AddError(string $sError)
$sError string Текст ошибки
Source Code: /engine/modules/validate/Validate.class.php#191 (show)
public function AddError($sError) {
    
$this->aErrors[]=$sError;
}

Добавляет ошибку в список

ClearErrors() method
public void ClearErrors()
Source Code: /engine/modules/validate/Validate.class.php#197 (show)
public function ClearErrors() {
    
$this->aErrors=array();
}

Очищает список ошибок

CreateValidator() method
public mixed CreateValidator(string $sName, LsObject $oObject, null|array $aFields=NULL, array $aParams=array ( ))
$sName string Имя валидатора или метода при использовании параметра $oObject
$oObject LsObject Объект в котором необходимо вызвать метод валидации
$aFields null|array Список полей сущности для которых необходимо провести валидацию
$aParams array Параметры
{return} mixed
Source Code: /engine/modules/validate/Validate.class.php#107 (show)
public function CreateValidator($sName,$oObject,$aFields=null,$aParams=array()) {
    if(
is_string($aFields)) {
        
$aFields=preg_split('/[\s,]+/',$aFields,-1,PREG_SPLIT_NO_EMPTY);
    }
    
/**
     * Определяем список сценариев валидации
     */
    
if(isset($aParams['on'])) {
        if(
is_array($aParams['on'])) {
            
$aOn=$aParams['on'];
        } else {
            
$aOn=preg_split('/[\s,]+/',$aParams['on'],-1,PREG_SPLIT_NO_EMPTY);
        }
    } else {
        
$aOn=array();
    }
    
/**
     * Если в качестве имени валидатора указан метод объекта, то создаем специальный валидатор
     */
    
$sMethod='validate'.func_camelize($sName);
    if(
method_exists($oObject,$sMethod)) {
        
$oValidator=Engine::GetEntity('ModuleValidate_EntityValidatorInline');
        if (!
is_null($aFields)) {
            
$oValidator->fields=$aFields;
        }
        
$oValidator->object=$oObject;
        
$oValidator->method=$sMethod;
        
$oValidator->params=$aParams;
        if(isset(
$aParams['skipOnError'])) {
            
$oValidator->skipOnError=$aParams['skipOnError'];
        }
    } else {
        
/**
         * Иначе создаем валидатор по имени
         */
        
if (!is_null($aFields)) {
            
$aParams['fields']=$aFields;
        }
        
$sValidateName='Validator'.func_camelize($sName);
        
$oValidator=Engine::GetEntity('ModuleValidate_Entity'.$sValidateName);
        foreach(
$aParams as $sNameParam=>$sValue) {
            
$oValidator->$sNameParam=$sValue;
        }
    }
    
$oValidator->on=empty($aOn) ? array() : array_combine($aOn,$aOn);
    return 
$oValidator;
}

Создает и возвращает объект валидатора

GetErrorLast() method
public bool|string GetErrorLast(bool $bRemove=false)
$bRemove bool Удалять или нет ошибку из списка ошибок
{return} bool|string
Source Code: /engine/modules/validate/Validate.class.php#176 (show)
public function GetErrorLast($bRemove=false) {
    if (!
$this->HasErrors()) {
        return 
false;
    }
    if (
$bRemove) {
        return 
array_pop($this->aErrors);
    } else {
        return 
$this->aErrors[count($this->aErrors)-1];
    }
}

Возвращает последнюю ошибку после валидации

GetErrors() method
public array GetErrors()
{return} array
Source Code: /engine/modules/validate/Validate.class.php#167 (show)
public function GetErrors() {
    return 
$this->aErrors;
}

Возвращает список ошибок после валидации

HasErrors() method
public bool HasErrors()
{return} bool
Source Code: /engine/modules/validate/Validate.class.php#159 (show)
public function HasErrors() {
    return 
count($this->aErrors) ? true false;
}

Возвращает факт наличия ошибки после валидации

Init() method
public void Init()
Source Code: /engine/modules/validate/Validate.class.php#70 (show)
public function Init() {

}

Инициализируем модуль

Validate() method
public bool Validate(string $sNameValidator, mixed $mValue, array $aParams=array ( ), null $oObject=NULL)
$sNameValidator string Имя валидатора или метода при использовании параметра $oObject
$mValue mixed Валидируемое значение
$aParams array Параметры валидации
$oObject null Объект в котором необходимо вызвать метод валидации
{return} bool
Source Code: /engine/modules/validate/Validate.class.php#83 (show)
public function Validate($sNameValidator,$mValue,$aParams=array(),$oObject=null) {
    if (
is_null($oObject)) {
        
$oObject=$this;
    }
    
$oValidator=$this->CreateValidator($sNameValidator,$oObject,null,$aParams);

    if ((
$sMsg=$oValidator->validate($mValue))!==true) {
        
$sMsg=str_replace('%%field%%',is_null($oValidator->label) ? '' $oValidator->label,$sMsg);
        
$this->AddError($sMsg);
        return 
false;
    } else {
        return 
true;
    }
}

Запускает валидацию данных