2013-08-09 2 views
1

Я занимаюсь PHP-приложением, и мне нужно прочитать несколько XML-файлов, содержащих текст, и я хочу показать его пользователю. Это работает без проблем.как читать большие данные XML и кэшировать его в PHP

Информация, хранящаяся в этих файлах, может храниться в кеше в течение длительного времени, так как она не изменяется слишком часто. Однако эти файлы имеют тенденцию быть тяжелыми, поэтому может быть плохой идеей загрузить их при каждом запросе. Я пытаюсь найти способ загрузить данные ленивым способом, возможно, используя синглтон и хранить их где-нибудь. Si, у меня все еще есть следующие вопросы:

  • где хранить данные? как параметры сеанса?
  • Как сделать ленивую загрузку? используя singleton? что даже хорошая идея в php?

спасибо

+0

насколько велики они? это сильная часть, разбирающая их или только размер? – cmorrissey

+0

Файлы не особенно дороги для разбора. У меня около 10 файлов по 6Kb каждый – fGo

ответ

0

Не используйте параметры сеанса. Они обычно хранятся в текстовом файле, который анализируется каждый раз, когда вы вызываете session_start(). Вы должны избегать хранения чего-либо большего, чем несколько байтов.

Вместо этого используйте внешнюю систему кэширования. Расширение APC предлагает простой пользовательский кэш в памяти, иначе вы можете использовать Memcached для системы кэширования, которая может использоваться совместно многими php-серверами.

Ленивая загрузка не сложно:

... 
private static $my_cached_object = null; 
public static function GetMyObject() { 
    if (null === self::$my_cached_object) { 

     self::$my_cached_object = load_my_object(); 

    } 
    return self::$my_cached_object; 
} 
... 
Смежные вопросы