Адаптер кеша PHP-файлов

Адаптер кеша PHP-файлов

Схоже с Адаптером файловой системы , эта реализация кеша вносит записи на диск, но в отличие от адаптера кеша файловой системы, адаптер кеша PHP-файлов записывает и считывает эти файлы кеша в качестве родного PHP-кода. Например, кеширование значения array('my', 'cached', 'array') выпишет файл кеша, похожий на следующий:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php return array(

    // исечение срока объекта кеша
    0 => 9223372036854775807,

    // содержание объекта кеша
    1 => array (
        0 => 'my',
        1 => 'cached',
        2 => 'array',
    ),

);

Note

Так как объекты кеша включаются и анализируеются как родной PHP-код и в связи с тем, как 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

Начиная с Symfony 3.4, этот адаптер реализует PruneableInterface, позволя ручное отсечение просроченных записей кеша путём вызова его метода prune().