Spec-Zone.ru › Yii 1.1

CDbCacheDependency

Пакет system.caching.dependencies
Наследование класс CDbCacheDependency » CCacheDependency » CComponent
Реализует ICacheDependency
С версии 1.0
Исходный код framework/caching/dependencies/CDbCacheDependency.php
CDbCacheDependency представляет зависимость, основанную на результате запроса SQL-запроса.

Если результат запроса (скалярное значение) изменится, зависимость считается изменённой. Для указания SQL-запроса установите свойство sql. Свойство connectionID указывает идентификатор компонента приложения CDbConnection. Именно эта база данных используется для выполнения запроса.

Общедоступные свойства

Свойство Тип Описание Определено
connectionID строка идентификатор компонента приложения CDbConnection. По умолчанию 'db'. CDbCacheDependency
dependentData смешанный данные, используемые для определения изменения зависимости. CCacheDependency
hasChanged булево была ли изменена зависимость. CCacheDependency
params массив параметры (имя=>значение), которые должны быть привязаны к SQL-запросу, указанному в свойстве sql. CDbCacheDependency
reuseDependentData булево Может ли эта зависимость быть повторно использована. CCacheDependency
sql строка SQL-запрос, результат которого используется для определения изменения зависимости. CDbCacheDependency

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

Свойство Тип Описание Определено
dbConnection CDbConnection экземпляр соединения с базой данных CDbCacheDependency

Общедоступные методы

Метод Описание Определено
__call() Вызывает метод, который не является методом класса. CComponent
__construct() Конструктор. CDbCacheDependency
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства нулевым. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__sleep() Магический метод PHP sleep. CDbCacheDependency
__unset() Устанавливает свойство компонента в значение null. CComponent
asa() Возвращает объект поведения с заданным именем. CComponent
attachBehavior() Присоединяет поведение к этому компоненту. CComponent
attachBehaviors() Присоединяет список поведений к компоненту. CComponent
attachEventHandler() Присоединяет обработчик событий к событию. CComponent
canGetProperty() Определяет, можно ли прочитать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает присоединённое поведение. CComponent
disableBehaviors() Отключает все поведения, присоединённые к этому компоненту. CComponent
enableBehavior() Включает присоединённое поведение. CComponent
enableBehaviors() Включает все поведения, присоединённые к этому компоненту. CComponent
evaluateDependency() Оценивает зависимость, генерируя и сохраняя данные, связанные с зависимостью. CCacheDependency
evaluateExpression() Оценивает PHP выражение или обратный вызов в контексте этого компонента. CComponent
getDependentData() Возвращает данные, используемые для определения изменения зависимости. Эти данные доступны после вызова evaluateDependency. CCacheDependency
getEventHandlers() Возвращает список присоединённых обработчиков событий для события. CComponent
getHasChanged() Возвращает, была ли изменена зависимость. CCacheDependency
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли присоединенные обработчики к указанному событию. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
raiseEvent() Вызывает событие. CComponent
resetReusableData() Сбрасывает кэшированные данные для зависимостей, которые можно повторно использовать. CCacheDependency

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

Метод Описание Определено
generateDependentData() Генерирует данные, необходимые для определения изменения зависимости. CDbCacheDependency
getDbConnection() Возвращает экземпляр соединения с базой данных CDbCacheDependency

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

connectionID свойство

public string $connectionID;

идентификатор компонента приложения CDbConnection. По умолчанию 'db'.

dbConnection свойство только для чтения

protected CDbConnection getDbConnection()

экземпляр соединения с базой данных

params свойство (доступно с версии 1.1.4)

public array $params;

параметры (имя=>значение), которые должны быть привязаны к SQL-запросу, указанному в свойстве sql.

sql свойство

public string $sql;

SQL-запрос, результат которого используется для определения, была ли изменена зависимость. Обратите внимание, что SQL-запрос должен возвращать единственное значение.

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

__construct() метод

public void __construct(string $sql=NULL)
$sql строка SQL-запрос, результат которого используется для определения, была ли изменена зависимость.
Исходный код: framework/caching/dependencies/CDbCacheDependency.php#46 (показать)
public function __construct($sql=null)
{
    
$this->sql=$sql;
}

Конструктор.

__sleep() метод

public array __sleep()
{return} массив
Исходный код: framework/caching/dependencies/CDbCacheDependency.php#56 (показать)
public function __sleep()
{
    
$this->_db=null;
    return 
array_keys((array)$this);
}

Магический метод PHP sleep. Этот метод гарантирует, что экземпляр базы данных установлен в значение null, так как он содержит дескрипторы ресурсов.

generateDependentData() метод

protected mixed generateDependentData()
{return} смешанный тип данные, необходимые для определения, была ли изменена зависимость.
Исходный код: framework/caching/dependencies/CDbCacheDependency.php#68 (показать)
protected function generateDependentData()
{
    if(
$this->sql!==null)
    {
        
$db=$this->getDbConnection();
        
$command=$db->createCommand($this->sql);
        if(
is_array($this->params))
        {
            foreach(
$this->params as $name=>$value)
                
$command->bindValue($name,$value);
        }
        if(
$db->queryCachingDuration>0)
        {
            
// temporarily disable and re-enable query caching
            
$duration=$db->queryCachingDuration;
            
$db->queryCachingDuration=0;
            
$result=$command->queryRow();
            
$db->queryCachingDuration=$duration;
        }
        else
            
$result=$command->queryRow();
        return 
$result;
    }
    else
        throw new 
CException(Yii::t('yii','CDbCacheDependency.sql cannot be empty.'));
}

Генерирует данные, необходимые для определения, была ли изменена зависимость. Этот метод возвращает значение глобального состояния.

getDbConnection() метод

protected CDbConnection getDbConnection()
{return} CDbConnection экземпляр подключения к базе данных
Исходный код: framework/caching/dependencies/CDbCacheDependency.php#99 (показать)
protected function getDbConnection()
{
    if(
$this->_db!==null)
        return 
$this->_db;
    else
    {
        if((
$this->_db=Yii::app()->getComponent($this->connectionID)) instanceof CDbConnection)
            return 
$this->_db;
        else
            throw new 
CException(Yii::t('yii','CDbCacheDependency.connectionID "{id}" is invalid. Please make sure it refers to the ID of a CDbConnection application component.',
                array(
'{id}'=>$this->connectionID)));
    }
}

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

Spec-Zone.ru

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