Вначале необходимо определиться, где будут храниться все настройки. Вариантов до фига и больше, поэтому нарисуем простой класс, в который и запихаем интерфейс к конфигам. Файл class/config.php:
1 <?php 2 class Config { 3 function Config() { 4 // echo "config class included"; 5 } 6 function getconfig() { 7 $conf=array(); 8 // imitation parse_ini_file or similar 9 $conf["log"]["file"]="file.log"; 10 11 $conf["sql"]["engine"]="mysql"; 12 $conf["sql"]["host"]="localhost"; 13 $conf["sql"]["user"]="multik"; 14 $conf["sql"]["password"]="password"; 15 $conf["sql"]["database"]="site"; 16 return $conf; 17 } 18 } 19 ?>
Обзывается класс просто и незатейливо. Сейчас весь его функционал - это занести в массив набор значений для последующего использования. Если вдруг мне в дальнейшем потребуется хранить конфигурацию в XML или еще где, я просто вместо 4й строки вставлю инициализацию нужного мне хранилища данных, а вместо строк с 7й по 15ю - алгоритм, который заполнит массив понятными для других классов значениями.
Пробежимся по значениям в строках
9 - что бы в случае ошибок не засорять экран (и не спрашивать у пользователя прислать скриншот), мы будет все складывать в file.log. Путь относительно корня сайта.
11 - выбираем в качестве сервера баз данных mysql. В принципе, я стараюсь писать все запросы так, что бы они соответсвовали SQL92. То есть чем меньше "штучек", тем на большем числе sql серверов сможет бегать sscms.
12-15 - параметры, куда цепляться и с чем.