Zakładam, że konfiguracja jest na użytkownika. Po pierwsze sugerowałbym napisanie klasy opakowującej, która będzie miała dostęp do konfiguracji. W ten sposób możesz zmienić rdzeń konfiguracji tylko w jednej klasie, a nie w całym kodzie.
class configuration {
public function get_user_configuration() {
// return users configuration
}
}
Myślę, że łatwiej byłoby przechowywać konfigurację w bazie danych. Ponieważ wtedy konfiguracja będzie prawdopodobnie codziennie tworzona kopia zapasowa i będzie można ją łatwo wyeksportować.
Buforowanie tej konfiguracji to dobry pomysł. Najprostszym sposobem byłoby buforowanie go w sesji. Możesz także spróbować memcache lub APC.