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