Spec-Zone.ru › Yii 1.1

CTimestampBehavior

Пакет zii.behaviors
Наследование класс CTimestampBehavior » CActiveRecordBehavior » CModelBehavior » CBehavior » CComponent
Реализует IBehavior
С 1.1
Исходный код framework/zii/behaviors/CTimestampBehavior.php
CTimestampBehavior автоматически заполнит атрибуты, связанные с датой и временем.

CTimestampBehavior автоматически заполнит атрибуты, связанные с датой и временем, когда активная запись создается и/или обновляется. Вы можете указать модель активной записи, чтобы использовать этот базовый класс, например:
public function behaviors(){
	return array(
		'CTimestampBehavior' => array(
			'class' => 'zii.behaviors.CTimestampBehavior',
			'createAttribute' => 'create_time_attribute',
			'updateAttribute' => 'update_time_attribute',
		)
	);
}
Параметры createAttribute и updateAttribute по умолчанию установлены в 'create_time' и 'update_time' соответственно, поэтому их настройка необязательна. Если вы не хотите, чтобы CTimestampBehavior устанавливал отметку времени для обновления или создания записи, установите соответствующий параметр атрибута в значение null.

По умолчанию атрибут обновления устанавливается только при обновлении записи. Если вы также хотите установить его при создании записи, установите параметр setUpdateOnCreate в значение true.

Хотя CTimestampBehavior пытается самостоятельно определить значение для вставки в атрибут отметки времени, вы можете указать пользовательское значение вместо этого через timestampExpression

Публичные свойства

Свойство Тип Описание Определено
createAttribute смешанный Имя атрибута для хранения времени создания. CTimestampBehavior
enabled boolean включено ли это поведение CBehavior
owner CComponent компонент-владелец, к которому прикреплено это поведение. CBehavior
setUpdateOnCreate bool Устанавливать ли атрибут обновления на время создания при создании записи. CTimestampBehavior
timestampExpression смешанный Выражение, которое будет использоваться для генерации отметки времени. CTimestampBehavior
updateAttribute смешанный Имя атрибута для хранения времени изменения. CTimestampBehavior

Защищённые свойства

Свойство Тип Описание Определено
map массив Сопоставление типов столбцов с методом базы данных CTimestampBehavior

Публичные методы

Метод Описание Определено
__call() Вызывает метод с указанным именем, который не является методом класса. CComponent
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства нулевым. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в значение null. CComponent
asa() Возвращает объект поведения с заданным именем. CComponent
attach() Прикрепляет объект поведения к компоненту. CBehavior
attachBehavior() Прикрепляет поведение к этому компоненту. CComponent
attachBehaviors() Прикрепляет список поведений к компоненту. CComponent
attachEventHandler() Прикрепляет обработчик события к событию. CComponent
beforeSave() Реагирует на событие CModel::onBeforeSave. CTimestampBehavior
canGetProperty() Определяет, может ли свойство быть прочитано. CComponent
canSetProperty() Определяет, может ли свойство быть установлено. CComponent
detach() Отсоединяет объект поведения от компонента. CBehavior
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик события. CComponent
disableBehavior() Отключает прикрепленное поведение. CComponent
disableBehaviors() Отключает все прикрепленные к этому компоненту поведения. CComponent
enableBehavior() Включает прикрепленное поведение. CComponent
enableBehaviors() Включает все прикрепленные к этому компоненту поведения. CComponent
evaluateExpression() Вычисляет выражение PHP или обратный вызов в контексте этого компонента. CComponent
events() Объявляет события и соответствующие методы обработчиков событий. CActiveRecordBehavior
getEnabled() Возвращает значение, указывающее, включено ли это поведение. CBehavior
getEventHandlers() Возвращает список прикрепленных обработчиков событий для события. CComponent
getOwner() Возвращает компонент-владелец, к которому прикреплено это поведение. CBehavior
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, имеет ли событие с заданным именем прикрепленные обработчики. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
raiseEvent() Возбуждает событие. CComponent
setEnabled() Устанавливает значение, указывающее, включено ли это поведение. CBehavior

Защищённые методы

Метод Описание Определён в
afterConstruct() Реагирует на событие CModel::onAfterConstruct. CModelBehavior
afterDelete() Реагирует на событие CActiveRecord::onAfterDelete. CActiveRecordBehavior
afterFind() Реагирует на событие CActiveRecord::onAfterFind. CActiveRecordBehavior
afterSave() Реагирует на событие CActiveRecord::onAfterSave. CActiveRecordBehavior
afterValidate() Реагирует на событие CModel::onAfterValidate. CModelBehavior
beforeCount() Реагирует на событие CActiveRecord::onBeforeCount. CActiveRecordBehavior
beforeDelete() Реагирует на событие CActiveRecord::onBeforeDelete. CActiveRecordBehavior
beforeFind() Реагирует на событие CActiveRecord::onBeforeFind. CActiveRecordBehavior
beforeValidate() Реагирует на событие CModel::onBeforeValidate. CModelBehavior
getTimestampByAttribute() Получает соответствующую метку времени в зависимости от типа столбца $attribute. CTimestampBehavior
getTimestampByColumnType() Возвращает соответствующую метку времени в зависимости от $columnType. CTimestampBehavior

Подробное описание свойств

createAttribute свойство

public mixed $createAttribute;

Имя атрибута для хранения времени создания. Установите в null, чтобы не использовать метку времени для атрибута создания. По умолчанию «create_time».

map свойство

protected static array $map;

Сопоставляет типы столбцов с методами базы данных.

setUpdateOnCreate свойство

public bool $setUpdateOnCreate;

Устанавливать ли атрибут обновления на метку времени создания при создании. В противном случае он останется прежним. По умолчанию false.

timestampExpression свойство

public mixed $timestampExpression;

Выражение, которое будет использоваться для генерации метки времени. Это может быть строка, представляющая выражение PHP (например, «time()»), или объект CDbExpression, представляющий выражение БД (например, new CDbExpression('NOW()')). По умолчанию null, что означает, что мы попытаемся автоматически определить соответствующую метку времени. Если мы не сможем найти соответствующую метку времени, она вернётся к текущей метке времени Unix.

Выражение PHP может быть любым кодом PHP, имеющим значение. Чтобы узнать больше о том, что такое выражение, обратитесь к справочнику PHP.

updateAttribute свойство

public mixed $updateAttribute;

Имя атрибута для хранения времени изменения. Установите в null, чтобы не использовать метку времени для атрибута обновления. По умолчанию «update_time».

Подробное описание методов

beforeSave() метод

public void beforeSave(CModelEvent $event)
$event CModelEvent параметр события
Исходный код: framework/zii/behaviors/CTimestampBehavior.php#89 (показать)
public function beforeSave($event) {
    if (
$this->getOwner()->getIsNewRecord() && ($this->createAttribute !== null)) {
        
$this->getOwner()->{$this->createAttribute} = $this->getTimestampByAttribute($this->createAttribute);
    }
    if ((!
$this->getOwner()->getIsNewRecord() || $this->setUpdateOnCreate) && ($this->updateAttribute !== null)) {
        
$this->getOwner()->{$this->updateAttribute} = $this->getTimestampByAttribute($this->updateAttribute);
    }
}

Реагирует на событие CModel::onBeforeSave. Устанавливает значения атрибутов создания или изменения в соответствии с конфигурацией.

getTimestampByAttribute() метод

protected mixed getTimestampByAttribute(string $attribute)
$attribute строка $attribute
{return} смешанный тип метка времени (например, метка времени Unix или функция MySQL)
Исходный код: framework/zii/behaviors/CTimestampBehavior.php#104 (показать)
protected function getTimestampByAttribute($attribute) {
    if (
$this->timestampExpression instanceof CDbExpression)
        return 
$this->timestampExpression;
    elseif (
$this->timestampExpression !== null)
    {
        try
        {
            return @eval(
'return '.$this->timestampExpression.';');
        }
        catch (
ParseError $e)
        {
            return 
false;
        }
    }

    
$columnType = $this->getOwner()->getTableSchema()->getColumn($attribute)->dbType;
    return 
$this->getTimestampByColumnType($columnType);
}

Получает соответствующую метку времени в зависимости от типа столбца $attribute.

getTimestampByColumnType() метод

protected mixed getTimestampByColumnType(string $columnType)
$columnType строка $columnType
{return} смешанный тип метка времени (например, метка времени Unix или функция MySQL)
Исходный код: framework/zii/behaviors/CTimestampBehavior.php#129 (показать)
protected function getTimestampByColumnType($columnType) {
    return isset(
self::$map[$columnType]) ? new CDbExpression(self::$map[$columnType]) : time();
}

Возвращает соответствующую метку времени в зависимости от $columnType.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CTimestampBehavior

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API