Spec-Zone.ru › Yii 1.1

CDirectoryCacheDependency

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

CDirectoryCacheDependency выполняет проверку зависимости на основе времени изменения файлов, содержащихся в указанной директории. Проверяемая директория задается через directory.

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

Обратите внимание, что проверка зависимости для директории ресурсоемка, так как она включает доступ к времени изменения множества файлов в директории.

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

Свойство Тип Описание Определено
dependentData mixed данные, используемые для определения изменения зависимости. CCacheDependency
directory string директория, изменение которой используется для определения изменения зависимости. CDirectoryCacheDependency
hasChanged boolean была ли изменена зависимость. CCacheDependency
namePattern string регулярное выражение, сопоставляющее допустимые имена файлов/директорий. CDirectoryCacheDependency
recursiveLevel integer глубина поддиректорий для рекурсивной проверки. CDirectoryCacheDependency
reuseDependentData boolean Можно ли повторно использовать эту зависимость. CCacheDependency

Общественные методы

Метод Описание Определено
__call() Вызывает метод с заданным именем, который не является методом класса. CComponent
__construct() Конструктор. CDirectoryCacheDependency
__get() Возвращает значение свойства, список обработчиков событий или поведение по его имени. CComponent
__isset() Проверяет, является ли значение свойства null. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__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() Генерирует данные, необходимые для определения изменения зависимости. CDirectoryCacheDependency
generateTimestamps() Определяет время последнего изменения для файлов в директории. CDirectoryCacheDependency
validateDirectory() Проверяет, нужно ли проверять указанную поддиректорию на предмет зависимости. CDirectoryCacheDependency
validateFile() Проверяет, нужно ли проверять файл на предмет зависимости. CDirectoryCacheDependency

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

directory свойство

public string $directory;

директория, изменение которой используется для определения, была ли изменена зависимость. Если любой из файлов в директории изменен, зависимость считается изменённой.

namePattern свойство

public string $namePattern;

регулярное выражение для сопоставления допустимых имён файлов/каталогов. Только соответствующие файлы или каталоги будут проверяться на изменения. По умолчанию равно null, что означает, что все файлы/каталоги подходят.

recursiveLevel свойство

public integer $recursiveLevel;

глубина вложенных каталогов, которые необходимо проверять рекурсивно. Если значение меньше 0, это означает неограниченную глубину. Если значение равно 0, это означает проверку файлов непосредственно в указанном каталоге.

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

__construct() метод

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

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

generateDependentData() метод

protected mixed generateDependentData()
{return} смешанный тип данные, необходимые для определения, было ли изменено зависимость.
Исходный код: framework/caching/dependencies/CDirectoryCacheDependency.php#66 (показать)
protected function generateDependentData()
{
    if(
$this->directory!==null)
        return 
$this->generateTimestamps($this->directory);
    else
        throw new 
CException(Yii::t('yii','CDirectoryCacheDependency.directory cannot be empty.'));
}

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

generateTimestamps() метод

protected array generateTimestamps(string $directory, integer $level=0)
$directory строка имя каталога
$level целое число уровень рекурсии
{return} массив список отметок времени последнего изменения файлов, индексированный по пути к файлу
Исходный код: framework/caching/dependencies/CDirectoryCacheDependency.php#82 (показать)
protected function generateTimestamps($directory,$level=0)
{
    if((
$dir=@opendir($directory))===false)
        throw new 
CException(Yii::t('yii','"{path}" is not a valid directory.',
            array(
'{path}'=>$directory)));
    
$timestamps=array();
    while((
$file=readdir($dir))!==false)
    {
        
$path=$directory.DIRECTORY_SEPARATOR.$file;
        if(
$file==='.' || $file==='..')
            continue;
        if(
$this->namePattern!==null && !preg_match($this->namePattern,$file))
            continue;
        if(
is_file($path))
        {
            if(
$this->validateFile($path))
                
$timestamps[$path]=filemtime($path);
        }
        else
        {
            if((
$this->recursiveLevel<0 || $level<$this->recursiveLevel) && $this->validateDirectory($path))
                
$timestamps=array_merge($timestamps, $this->generateTimestamps($path,$level+1));
        }
    }
    
closedir($dir);
    return 
$timestamps;
}

Определяет время последнего изменения файлов в каталоге. Этот метод может рекурсивно входить во вложенные каталоги, если recursiveLevel не равно 0.

validateDirectory() метод

protected boolean validateDirectory(string $directory)
$directory строка имя вложенного каталога, который может быть проверен на зависимость.
{return} логическое значение следует ли проверять этот вложенный каталог.
Исходный код: framework/caching/dependencies/CDirectoryCacheDependency.php#131 (показать)
protected function validateDirectory($directory)
{
    return 
true;
}

Проверяет, следует ли проверять указанный вложенный каталог на зависимость. Этот метод вызывается при проверке зависимости всего каталога. По умолчанию он всегда возвращает true, что означает, что вложенный каталог следует проверять. Вы можете переопределить этот метод, чтобы проверять только определённые вложенные каталоги.

validateFile() метод

protected boolean validateFile(string $fileName)
$fileName строка имя файла, который может быть проверен на зависимость.
{return} логическое значение следует ли проверять этот файл.
Исходный код: framework/caching/dependencies/CDirectoryCacheDependency.php#118 (показать)
protected function validateFile($fileName)
{
    return 
true;
}

Проверяет, следует ли проверять файл на зависимость. Этот метод вызывается при проверке зависимости всего каталога. По умолчанию он всегда возвращает true, что означает, что файл следует проверять. Вы можете переопределить этот метод, чтобы проверять только определённые файлы.

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

Spec-Zone.ru

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