Команда file
довольно быстрая, поэтому я уверен, что кеширование чего-либо принесет много пользы.
Используете ли вы данные при каждой загрузке страницы? Если нет, не переходите к сессиям, так как вам придется загружать их, даже если они вам не нужны.
Данные зависят от пользователя? Если нет, не продолжайте сеанс, поскольку вы будете дублировать данные повсюду без причины.
Если вы делаете более сложный синтаксический анализ, я бы рекомендовал кэшировать файл, используя
file_put_contents($filename, '<?php return '.var_export($array, true).';');
Затем все, что вам нужно сделать, это $data = include $filename
, чтобы получить данные ...
Вы даже можете сделать его достаточно умным, чтобы обнаружить изменения:
function getData() {
static $data = array();
if (empty($data)) {
$cache = '/path/to/cache/file';
$full = '/path/to/original/file';
if (!file_exists($cache) || filemtime($cache) < filemtime($full)) {
$data = parseDataFileIntoArray($full);
$code = '<?php return '.var_export($data, true).';';
file_put_contents($cache, $code);
} else {
$data = include $cache;
}
}
return $data;
}