Yii2 Folder Dependency
FolderDependency - дополнительная зависимость для фреймворка Yii2, которая позволяет сбрасывать кэш при обнаружении изменений папки или содержащихся в ней файлов., (*1)
![Build Status][ico-travis] ![Software License][ico-license] , (*2)
Установка
Используя Composer:, (*3)
``` bash
$ composer require iiifx-production/yii2-folder-dependency, (*4)
или добавить в composer.json, в секцию require:
``` json
"iiifx-production/yii2-folder-dependency": "0.1.*@stable"
Использование
``` php
use iiifx\cache\dependency\FolderDependency;, (*5)
$cache = Yii::$app->cache;, (*6)
Проверяем наличие кэша
if ( ( $cachedData = $cache->get( 'some-cache-key' ) ) === FALSE ) {, (*7)
# Кэша нет, подготавливаем данные
$cachedData = [ /* .. */ ];
# Создаем зависимость для кэша
$folderDependency = new FolderDependency( [
'folder' => '/path/to/folder'
] );
# Кэшируем данные
$cache->set( 'some-cache-key', $cachedData, 0, $folderDependency );
}, (*8)
Пользуемся данными
var_export( $cachedData );, (*9)
В данном примере кэш будет создан при первом запросе. При последующих запросах будут использоваться закэшариванные данные, пока папка folder или размещенные в ней файлы не изменятся. Любое изменение файла внутри folder будет обнаружено и кэш потеряет свою актуальность.
Не имеет значения какое количество файлов будет содержать folder, это никак не повлияет на производительность. Зависимость проверяет лишь папку, не затрагивая файлы, который в ней содержаться.
Для создания зависимости от нескольких папок пути можно передать списком:
``` php
$foldersDependency = new FolderDependency( [
'folder' => [
'/path/to/folder1',
'/path/to/folder2',
'/path/to/folder3',
]
] );
В этом случае кэш потеряет свою актуальность при изменении любой папки или любого файла внутри папок., (*10)
!!! Важно !!!
Зависимость не обнаружит изменения во вложенных папках, которые размещены внутри указанных в folder., (*11)
Флаг reusable по умолчанию установлен в TRUE., (*12)
Тесты
В данный момент не реализованы., (*13)
Лизценция
![Software License][ico-license], (*14)
, (*15)