ModuleValidate_EntityValidatorDate

Package framework.modules.validate
Inheritance class ModuleValidate_EntityValidatorDate » ModuleValidate_EntityValidator » Entity » LsObject
Since 1.0
Source Code /framework/classes/modules/validate/entity/ValidatorDate.entity.class.php
Валидатор даты Валидатор использует внешний класс DateTimeParser

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
allowEmpty bool Допускать или нет пустое значение ModuleValidate_EntityValidatorDate
bSkipOnError bool Пропускать или нет ошибку ModuleValidate_EntityValidator
condition null|string Условие срабатывания валидации ModuleValidate_EntityValidator
fields array Список полей сущности для валидации ModuleValidate_EntityValidator
format string|array Формат допустимой даты, может содержать список форматов в массиве ModuleValidate_EntityValidatorDate
label null|string Название поля сущности для отображения в тексте ошибки ModuleValidate_EntityValidator
msg null|string Текст ошибки валидации, переопределяет текст валидатора ModuleValidate_EntityValidator
on null|array Список сценариев в которых участвует валидатор ModuleValidate_EntityValidator

Protected Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
_aBehaviors Список поведений в виде готовых объектов, формируется автоматически LsObject
_aData array Данные сущности, на этот массив мапятся методы set* и get* Entity
aBehaviors array Список поведений LsObject
aValidateErrors array Список ошибок валидации в разрезе полей, например Entity
aValidateRules array Список правил валидации полей Entity
oEntityCurrent null|Entity Объект текущей сущности, которая проходит валидацию ModuleValidate_EntityValidator
sFieldCurrent null|string Объект текущей сущности, которая проходит валидацию ModuleValidate_EntityValidator
sPrimaryKey null|string Имя поля с первичным ключом в БД Entity
sValidateScenario string Сценарий валиадции полей Entity

Public Methods

Hide inherited methods

MethodDescriptionDefined By
AddBehaviorHook() Добавляет хук поведения LsObject
AttachBehavior() Присоединяет поведение к объекту LsObject
DetachBehavior() Отсоединяет поведение от объекта LsObject
GetBehavior() Возвращает объект поведения по его имени LsObject
GetBehaviors() Возвращает все объекты поведения LsObject
Init() Метод инициализации сущности, вызывается при её создании Entity
RemoveBehaviorHook() Удаляет хук поведения LsObject
RunBehaviorHook() Запускает хук поведения на выполнение LsObject
_Validate() Выполняет валидацию данных сущности Entity
__call() Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля Entity
__clone() При клонировании сбрасываем поведения LsObject
__construct() Если передать в конструктор ассоциативный массив свойств и их значений, то они автоматом загрузятся в сущность Entity
__get() Обработка доступа к объекты поведения LsObject
_addValidateError() Добавляет для поля ошибку в список ошибок Entity
_clearValidateErrors() Очищает список всех ошибок или для конкретного поля Entity
_createValidators() Создает и возвращает список валидаторов для сущности Entity
_getData() Получает массив данных сущности Entity
_getDataArray() Рекурсивное преобразование объекта и вложенных объектов в массив Entity
_getDataOne() Возвращает данные по конкретному полю Entity
_getPrimaryKey() Получение первичного ключа сущности (ключ, а не значение!) Entity
_getPrimaryKeyValue() Возвращает значение первичного ключа/поля Entity
_getValidateError() Возвращает первую ошибку для поля или среди всех полей Entity
_getValidateErrors() Возвращает список ошибок для всех полей или одного поля Entity
_getValidateRules() Возвращает список правил для валидации Entity
_getValidateScenario() Возвращает текущий сценарий валидации Entity
_getValidators() Возвращает список валидаторов с учетом текущего сценария Entity
_hasValidateErrors() Проверяет есть ли ошибки валидации Entity
_setData() Устанавливает данные сущности Entity
_setDataSafe() Устанавливает данные, но только те, которые есть в $this->aValidateRules Entity
_setValidateScenario() Устанавливает сценарий валидации Entity
applyTo() Применять или нет сценарий к текущему валидатору ModuleValidate_EntityValidator
getTypeValidator() Возвращает тип валидатора ModuleValidate_EntityValidator
validate() Запуск валидации ModuleValidate_EntityValidatorDate
validateEntity() Запускает валидацию полей сущности ModuleValidate_EntityValidator
validateEntityField() Запускает валидацию конкретного поля сущности ModuleValidate_EntityValidator

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
PrepareBehaviors() Инициализация поведений LsObject
getMessage() Возвращает сообщение, используется для получения сообщения об ошибке валидатора ModuleValidate_EntityValidator
getValueOfCurrentEntity() Возвращает значение поля текущей сущности ModuleValidate_EntityValidator
isEmpty() Проверяет данные на пустое значение ModuleValidate_EntityValidator
setValueOfCurrentEntity() Устанавливает значение поля текущей сущности ModuleValidate_EntityValidator

Property Details

allowEmpty property
public bool $allowEmpty;

Допускать или нет пустое значение

format property
public string|array $format;

Формат допустимой даты, может содержать список форматов в массиве

Method Details

validate() method
public bool|string validate(mixed $sValue)
$sValue mixed Данные для валидации
{return} bool|string
Source Code: /framework/classes/modules/validate/entity/ValidatorDate.entity.class.php#59 (show)
public function validate($sValue)
{
    if (
is_array($sValue)) {
        return 
$this->getMessage($this->Lang_Get('validate_date_format_invalid'nullfalse), 'msg');
    }
    if (
$this->allowEmpty && $this->isEmpty($sValue)) {
        return 
true;
    }

    require_once(
Config::Get('path.framework.libs_vendor.server') . '/DateTime/DateTimeParser.php');

    
$aFormats is_string($this->format) ? array($this->format) : $this->format;
    
$bValid false;
    foreach (
$aFormats as $sFormat) {
        
$iTimestamp DateTimeParser::parse($sValue$sFormat,
            array(
'month' => 1'day' => 1'hour' => 0'minute' => 0'second' => 0));
        if (
$iTimestamp !== false) {
            
$bValid true;
            break;
        }
    }

    if (!
$bValid) {
        return 
$this->getMessage($this->Lang_Get('validate.date.format_invalid'nullfalse), 'msg');
    }
    return 
true;
}

Запуск валидации