parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Misha v.3 07.08.2014 04:20

насколько я понимаю, вы храните настройки в hashfile-ах.
считаю, что этот подход неправильный.
лучше храните их в текстовых файлах (csv, xml) + напишите классы, которые будут с ними работать.

один класс для чтения. внутрь этого класса, если очень хочется, вы можете внедрить кэширование в hashfile-ах. т.е. класс будет сравнивать timestamp текстоого файла и hashfile-а, если у первого timestamp более новый -- будет запускать пересоздание hashfile-а.

второй класс будет использоваться для редактирования настроек (например в административном интерфейсе).

во первых вы перестанете зависить от конкретного формата hashfile (да, у вас проблема возникла из-за битности парсера, а не его версии). во вторых вы всегда сможете открыть ваши конфиги и посмотреть/исправить их содержание.

у меня что-то подобное использыется. правда я не занимаюсь кэшированием в hashfile-ах. настроек обычно немного. загрузить их все при инициализации сессии в память -- не ресурсоёмко. т.е. со второго обращения в рамках сессии всё работает очень быстро. а затраты на парсинг текстовых файлов между сессиями не такие уж и большие (table::load + menu + запись в hash). думаю, что это работает даже быстрее, чем ваша текущая реализация с hashfile (смысл hashfile-а проявляется, когда данных много).