ModuleValidate

Package framework.modules.validate
Inheritance class ModuleValidate » Module » LsObject
Since 1.0
Source Code /framework/classes/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
_aBehaviors Список поведений в виде готовых объектов, формируется автоматически LsObject
aBehaviors array Список поведений LsObject
aErrors array Список ошибок при валидации, заполняется только если использовать валидацию напрямую без сущности ModuleValidate
bIsInit bool Указывает на то, была ли проведенна инициализация модуля Module

Public Methods

Hide inherited methods

MethodDescriptionDefined By
AddBehaviorHook() Добавляет хук поведения LsObject
AddError() Добавляет ошибку в список ModuleValidate
AttachBehavior() Присоединяет поведение к объекту LsObject
ClearErrors() Очищает список ошибок ModuleValidate
CreateValidator() Создает и возвращает объект валидатора ModuleValidate
DetachBehavior() Отсоединяет поведение от объекта LsObject
GetBehavior() Возвращает объект поведения по его имени LsObject
GetBehaviors() Возвращает все объекты поведения LsObject
GetErrorLast() Возвращает последнюю ошибку после валидации ModuleValidate
GetErrors() Возвращает список ошибок после валидации ModuleValidate
HasErrors() Возвращает факт наличия ошибки после валидации ModuleValidate
Init() Инициализируем модуль ModuleValidate
RemoveBehaviorHook() Удаляет хук поведения LsObject
RunBehaviorHook() Запускает хук поведения на выполнение LsObject
SetInit() Помечает модуль как инициализированный Module
Shutdown() Метод срабатывает при завершении работы ядра Module
Validate() Запускает валидацию данных ModuleValidate
__call() Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля LsObject
__clone() Блокируем копирование/клонирование объекта Module
__construct() Конструктор, запускается автоматически при создании объекта LsObject
__get() Обработка доступа к объекты поведения LsObject
isInit() Возвращает значение флага инициализации модуля Module

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
PrepareBehaviors() Инициализация поведений LsObject

Property Details

aErrors property
protected array $aErrors;

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

Method Details

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

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

ClearErrors() method
public void ClearErrors()
Source Code: /framework/classes/modules/validate/Validate.class.php#216 (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: /framework/classes/modules/validate/Validate.class.php#116 (show)
public function CreateValidator($sName$oObject$aFields null$aParams = array())
{
    if (
is_string($aFields)) {
        
$aFields preg_split('/[\s,]+/'$aFields, -1PREG_SPLIT_NO_EMPTY);
    }
    
/**
     * Определяем список сценариев валидации
     */
    
if (isset($aParams['on'])) {
        if (
is_array($aParams['on'])) {
            
$aOn $aParams['on'];
        } else {
            
$aOn preg_split('/[\s,]+/'$aParams['on'], -1PREG_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: /framework/classes/modules/validate/Validate.class.php#191 (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: /framework/classes/modules/validate/Validate.class.php#180 (show)
public function GetErrors()
{
    return 
$this->aErrors;
}

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

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

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

Init() method
public void Init()
Source Code: /framework/classes/modules/validate/Validate.class.php#75 (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: /framework/classes/modules/validate/Validate.class.php#90 (show)
public function Validate($sNameValidator$mValue$aParams = array(), $oObject null)
{
    if (
is_null($oObject)) {
        
$oObject $this;
    }
    
$oValidator $this->CreateValidator($sNameValidator$oObjectnull$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;
    }
}

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