Адаптер кеша PHP-файлов
Дата обновления перевода 2023-08-17*
Адаптер кеша PHP-файлов
Схоже с адаптером Filesystem, эта
реализация кеша вносит записи на диск, но в отличие от адаптера кеша файловой системы,
адаптер кеша PHP-файлов записывает и считывает эти файлы кеша в качестве родного PHP-кода.
Например, кеширование значения ['my', 'cached', 'array']
выпишет файл кеша, похожий
на следующий:
1 2 3 4 5 6 7 8 9 10 11 12 13
<?php return [
// истечение срока объекта кеша
0 => 9223372036854775807,
// содержание объекта кеша
1 => [
0 => 'my',
1 => 'cached',
2 => 'array',
],
];
Note
Этот адаптер требует включения настройки opcache.enable
php.ini.
Поскольку элементы кеша включаются и анализируются как нативный PHP-код, а также
благодаря тому, как OPcache обрабатывает включение файлов, этот адаптер может
быть гораздо быстрее, чем другие кеши, основанные на файловой системе.
Caution
Несмотря на то, что он поддерживает обновления и использует OPcache в качестве бэкенда, этот адаптер лучше подходит для нужд, связанных только с добавлением. Использование его в других сценариях может привести к периодической перезагрузке памяти OPcache, что может привести к снижению производительности.
PhpFilesAdapter можно опционально предоставить пространство имён, время жизни кеша по умолчанию и путь каталога кеша в качестве аргументов конструктора:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
use Symfony\Component\Cache\Adapter\PhpFilesAdapter;
$cache = new PhpFilesAdapter(
// строка, используемая как подкаталог корневого каталога кеша, где будут
// храниться объекты кеша
$namespace = '',
// время жизни по умолчанию (в секундах) для объектов кеша, которые не определяют
// собственное время жизни, со значением по умолчанию 0, что приводит к бесконечному хранению объектов
// (т.е. пока файлы не будут удалены)
$defaultLifetime = 0,
// главный каталог кеша (приложению необходимы права чтения и записи в нём)
// если он не указан, создаётся каталог внутри временного каталога системы
$directory = null
);
Note
Этот адаптер реализует PruneableInterface,
позволя ручное отсечение просроченных записей кеша путём
вызова его метода prune()
.