PHP - Использование XML для конфигурационного файла (ов) элементы лучше, чем атрибуты или наоборот? - PullRequest
3 голосов
/ 04 марта 2010

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

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

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

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

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 04 марта 2010

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

См. Принципы проектирования XML: когда использовать элементы против атрибутов от IBM. Довольно хорошая статья.

Вот фрагмент:

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

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

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

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

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

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

...