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