Symfony2 - Зачем использовать XML для настроек/config?
Есть ли какой-либо интерес к использованию XML над YAML для каждого из этих типов файлов:
- конфигурации
- Безопасность
- маршрутизации
- услуги
- Перевод
Я хотел бы спросить XML vs YAML и JSON глобально, но я буду придерживаться следующих тем:)
Ответы
Ответ 1
В моих проектах компании для каждого из упомянутых выше пунктов мы используем YAML
, потому что это более читаемо. Самый читаемый. Самый читаемый.
ИЗМЕНИТЬ
Единственная абстрактная ситуация, которую я могу себе представить для использования XML
over YAML
-, вероятно, для некоторых динамических файловых писателей, поскольку с ними проще манипулировать узлами с помощью SimpleXML
или что-то в этом роде. Например, если вам нужно определить какой-либо файл конфигурации, построить схемы в тестах и т.д.
Но трудно представить себе другую ситуацию.
ДРУГОЕ ИЗМЕНЕНИЕ:
Поскольку мой ответ был принят, я не могу не согласиться с m2mdas - как он упоминал в своем ответе ниже, еще одна вещь, которая имеет смысл использовать XML
, - это поддержка автозаполнения IDE.
Ответ 2
Преимущество xml congiruration - автоматическое завершение IDE и мгновенная проверка. В качестве элементов, определяемых конкретным определением схемы, IDE могут мгновенно проверять элементы против него, что невозможно в YAML или JSON. Также я думаю, что Symfony проверяет элементы xml в конфигурации против определения перед его обработкой.
Изменить:
Подтверждением я имел в виду проверку структуры элемента в соответствии с определенной схемой. Лучше проверить конфигурацию перед ее обработкой. Например, services.yml
с сотнями определения объекта службы имеет ошибку в определении 99-й службы. Анализатор Yaml будет обрабатывать поэтапно, создавать дорогостоящие объекты обслуживания с высокой интенсивностью процессора и с ошибкой 99-го определения. Если для service.xml
с определенной схемой вы можете проверить структуру элемента и обработать их, если это ОК. Очевидно, что второй процесс эффективен.
Ответ 3
Fabien Potencier написал о преимуществах использования XML над YAML в своем блоге:
-
Когда файл XML загружается, он автоматически проверяется с помощью встроенного файла services.xsd;
-
XML может быть автоматически завершен в IDE,
-
Формат XML быстрее, чем YAML,
-
Формат XML не содержит внешних зависимостей (формат YAML зависит от компонента sfYAML).
Хотя этот пост был написан для symfony1.x, точки также могут быть обязательно применены для Symfony2.
http://fabien.potencier.org/article/15/symfony-service-container-using-xml-or-yaml-to-describe-services
Ответ 4
Еще одна вещь в пользу XML - это возможность определять параметры с помощью константы PHP, что невозможно с помощью YAML.