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
Property | Type | Description | Defined By |
---|---|---|---|
aErrors | array | Список ошибок при валидации, заполняется только если использовать валидацию напрямую без сущности | ModuleValidate |
bIsInit | bool | Указывает на то, была ли проведенна инициализация модуля | Module |
oEngine | Engine | Объект ядра | Module |
Public Methods
Method | Description | Defined 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
Method | Description | Defined 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;
}
}
Запускает валидацию данных