Вместо того, чтобы сохранять конфигурацию в переменных/массиве PHP
| Код | $conf['language'] = 'en'; $conf['template'] = 'default';
|
можно сохранять те же данные в XML
| Код | <CONF> <LANGUAGE>en</LANGUAGE> <TEMPLATE>default</TEMPLATE> </CONF>
|
Несколько ситуаций, когда это бывает удобным:- Конфигурация для одного сервиса может храниться на другом. Это особенно удобно, когда речь идет о взаимодействии между продуктами разных фирм. include'ом файл с данными с другого сервера не подключишь, а все иные способы (file_get_contents(), CURL, сокеты и т.д.) возвращают текст, а не PHP код. Очевидно, что парсить проще XML (я в данный момент не рассматриваю массу вариантов а-ля RPC)
- Нужна возможность менять конфигурацию из web-интерфейса (см. любой настраиваемый движок). Тогда полученные настройки можно хранить в базе данных или в XML-файле. Последний случай предпочтительнее, если кроме этих настроек хранить в этой базе нечего и жалко связываться с базой данных ради этого (один XML-файл явно легче поддерживать, чем базу данных)
- Разделение работы между програмистами и web-мастерами Если Вы пишете движок, на котором потом web-мастера будут поднимать несколько аналогичных сайтов, удобнее и безопаснее, когда web-мастера не работают с PHP-кодом, а конфигурацию меняют в XML-файле
- Использование одних и тех же данных из PHP и XSL. Если сайт строится по схеме XML/XSL, часто бывает, что одни и те же данные нужны и в XSL, и в PHP. Например, если в форме есть SELECT со списком стран, приносящий в скрипт код страны, этот список нужен как в XSL (чтобы выдать его пользователю в HTML-форме), так и в PHP (чтобы проверить, допустим ли полученный POST-ом код). Хранить этот список дважды (один раз в PHP, другой - XSL) - некрасиво и чревато проблемами при поддержке: списки легко могут рассинхронизироваться. А XML-файл - отличный вариант, к которому легко обратиться и из PHP, и из XSL.
Этот список никак не претендует на полноту, но надеюсь, может быть полезен, чтобы получить представление о теме.
|