2010-03-03 6 views
3

Я использую XML для файла конфигурации в PHP (с использованием SimpleXML), создавая файл конфигурации, который является более стандартным.PHP - Использование XML для конфигурационного файла (ов) - это элементы, которые лучше, чем атрибуты или наоборот?

Имея все значения в элементах или используя атрибуты?

Элементы Пример:

<database> 
    <user>test-user</user> 
    <pass>test-pass</pass> 
</database> 

Атрибут Пример:

<database user="test-user" pass="test-pass"></database> 

Существуют ли какие-либо преимущества в любом случае?

Также на других языках может потребоваться прочитать один и тот же конфигурационный файл, такой как Java и Perl.

ответ

3

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

См. Principles of XML design: When to use elements versus attributes от IBM. Довольно хорошая статья.

Вот отрывок:

В моем опыте работы с пользователями XML, первый вопрос, который на сегодняшний день является наиболее распространенным. В некоторых случаях ответ довольно однозначен:

  • Если информация, о которой идет речь, сама по себе может быть отмечена элементами, поместите ее в элемент.
  • Если информация подходит для формы атрибута, но может оказаться как несколько атрибутов с одним и тем же именем в одном элементе, вместо этого используйте дочерние элементы.
  • Если информация требуется для стандартного типа атрибутов типа DTD, такого как ID, IDREF или ENTITY, используйте атрибут.
  • Если информация не должна быть нормализована для пробелов, используйте элементы. (XML-процессоры нормализуют атрибуты способами, которые могут изменить исходный текст значения атрибута.)
+0

Статья выглядит великолепно и благодарит. Он был написан в 2004 году, но он по-прежнему сохраняет некоторые ключевые моменты. –

+0

Добро пожаловать :) – AlexV

-2

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

Как никто его не читал, я бы предложил использовать сам PHP.

<? 
    $config['db']['user']="user"; 
    $config['db']['pass']="pass"; 
?> 

Это немного более безопасно и надежно.

+0

Я хотел бы сохранить его как PHP, , Использование XML - это изменение конфигурации, которое можно было бы сделать «на лету». Итак, нет окна развертывания :) –

+3

Почему-то я не вижу, как редактирование файла, содержащего исполняемый код PHP, будет более безопасным или надежным, чем использование XML-файла. Вы не можете прокрасть @ '' $ _GET [z] '' в файл XML ... –

+0

Я согласен с этим. Вы также можете иметь файл php с кучей DEFINES.Если вы используете php, я не вижу причин использовать xml, поскольку xml на самом деле медленнее, чем файл php. –