iiifx-production / yii2-folder-dependency
Folder dependency for Yii2 framework
Installs: 926
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- yiisoft/yii2: *@stable
Requires (Dev)
- phpunit/phpunit: *@stable
This package is not auto-updated.
Last update: 2024-11-08 05:24:29 UTC
README
FolderDependency - дополнительная зависимость для фреймворка Yii2, которая позволяет сбрасывать кэш при обнаружении изменений папки или содержащихся в ней файлов.
Установка
Используя 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.
Тесты
В данный момент не реализованы.