Глава 9. Конфигурационные файлы

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

Пример 9-1. Пример файла конфигурации

# глобальные переменные
pageTitle = "Main Menu"
bodyBgColor = #000000
tableBgColor = #000000
rowBgColor = #00ff00

[Customer]
pageTitle = "Customer Info"

[Login]
pageTitle = "Login"
focus = "username"
Intro = """Значение, которое занимает больше
 чем одну строку должно быть заключено
          в тройные кавычки."""

# спрятанная секция
[.Database]
host=my.domain.com
db=ADDRESSBOOK
user=php-user
pass=foobar

Значения переменных могут заключаться в кавычки, но это не обязательно. Можно использовать как двойные, так и одинарные кавычки. Если у вас есть значение, которое занимает больше, чем одну строку, необходимо заключить его в тройные кавычки ("""). Можно включать комментарии в файл конфигурации используя любой синтакис, который не является допустимым синтаксисом файлов конфигурации. Рекомендуется использовать символ # (hash) в начале строки.

Конфигурационный файл в примере имеет две секции. Названия секций заключены в квадратные скобки []. Названия секций могут быть произвольными строками, не содержащими символов [ или ]. Четыре переменные вначале - глобальные переменные или переменные вне секций. Эти переменные всегда загружаются из файла конфигурации. Если загружается определенная секция, то глобальные переменные и переменные из этой секции становятся доступными. Если переменная существует как глобальная, так и внутри секции, то используется версия из секции. Если есть две одинаковые переменные в пределах одной секции, то используеться последний встретившийся вариант.

Файлы конфигурации загружаются в шаблон в помощью функции config_load.

Можно спрятать отдельные переменные или целые секции, добавив к названию точку в начале. Это полезно, когда ваше приложение берет некоторые переменные, ненужные в шаблоне, из файла конфигурации. Если шаблоны могут редактировать третьи лица, то вы можете быть спокойны за ценную информацию из файлов конфигураций: они не смогут ее загрузить в шаблон.