iiifx-production/yii2-folder-dependency

Folder dependency for Yii2 framework

v0.1.0 2015-07-06 05:46 UTC

This package is not auto-updated.

Last update: 2022-06-23 18:05:48 UTC


README

FolderDependency - дополнительная зависимость для фреймворка Yii2, которая позволяет сбрасывать кэш при обнаружении изменений папки или содержащихся в ней файлов.

Latest Version on Packagist Build Status Software License Total Downloads

Установка

Используя Composer:

$ composer require iiifx-production/yii2-folder-dependency

или добавить в composer.json, в секцию require:

    "iiifx-production/yii2-folder-dependency": "0.1.*@stable"

Использование

use iiifx\cache\dependency\FolderDependency;

$cache = Yii::$app->cache;

# Проверяем наличие кэша
if ( ( $cachedData = $cache->get( 'some-cache-key' ) ) === FALSE ) {

    # Кэша нет, подготавливаем данные
    $cachedData = [ /* .. */ ];

    # Создаем зависимость для кэша
    $folderDependency = new FolderDependency( [
        'folder' => '/path/to/folder'
    ] );

    # Кэшируем данные
    $cache->set( 'some-cache-key', $cachedData, 0, $folderDependency );

}

# Пользуемся данными
var_export( $cachedData );

В данном примере кэш будет создан при первом запросе. При последующих запросах будут использоваться закэшариванные данные, пока папка folder или размещенные в ней файлы не изменятся. Любое изменение файла внутри folder будет обнаружено и кэш потеряет свою актуальность. Не имеет значения какое количество файлов будет содержать folder, это никак не повлияет на производительность. Зависимость проверяет лишь папку, не затрагивая файлы, который в ней содержаться.

Для создания зависимости от нескольких папок пути можно передать списком:

$foldersDependency = new FolderDependency( [
    'folder' => [
        '/path/to/folder1',
        '/path/to/folder2',
        '/path/to/folder3',
    ]
] );

В этом случае кэш потеряет свою актуальность при изменении любой папки или любого файла внутри папок.

!!! Важно !!!

Зависимость не обнаружит изменения во вложенных папках, которые размещены внутри указанных в folder.

Флаг reusable по умолчанию установлен в TRUE.

Тесты

В данный момент не реализованы.

Лизценция

Software License

Bitdeli Badge