PHP YAML Parsers

Кто-нибудь знает хороший YAML Parser для PHP? Если да, каковы плюсы и минусы этой библиотеки?

Solutions Collecting From Web of "PHP YAML Parsers"

Последнее обновление : 26 июля 2017 г.

Вот краткое изложение состояния YAML в PHP:

  • Обертки для библиотек C: вам, вероятно, понадобится их, если вам нужна чистая скорость:
    • php-yaml : Обертка для LibYAML . Доступно как расширение PECL; он также является документом PHP .
    • syck : привязка к сик; также доступен как расширение PECL. (датировано, см. ниже)
  • Чистые реализации PHP:

    • sfYaml : компонент YAML от Symfony. Здесь вы можете увидеть мотивацию авторов. Он хотел, чтобы что-то было « простым в использовании, быстрым, проверенным модулем и имело четкие сообщения об ошибках ».
    • spyc : парсер YAML без зависимостей

На момент написания этой статьи последние версии выпускают даты для вышеупомянутых библиотек, а версии спецификации YAML (1.2 – последняя версия), которые они поддерживают:

php-yaml 1.3.0 2016-09-24 YAML 1.1 [PHP 5] php-yaml 2.0.0 2016-09-24 YAML 1.1 [PHP 7] syck 0.9.3 2008-11-18 YAML 1.0 sfYaml 3.3.5 2017-06-15 YAML 1.1, most of 1.2 spyc 0.6.2 2017-02-24 YAML 1.1 

Spyc: https://github.com/mustangostang/spyc

Чистая реализация PHP, поэтому вам не нужно вносить какие-либо изменения в сервер для установки. Если скорость вызывает серьезную озабоченность, это может быть не идеальное решение, но если вы используете YAML для конфигурации или относительно малообъемного использования, это фантастическое решение.

Учитывая документ YAML, Spyc вернет массив, который вы можете использовать, но считаете нужным.

 require_once "spyc.php"; $data = Spyc::YAMLLoad($myfile); 

Учитывая массив, Spyc вернет строку, содержащую документ YAML, построенный из ваших данных.

 $yaml_str = Spyc::YAMLDump($myarray); 

Рамка symfony очень сильно использует YAML, это сообщение в блоге Grégoire Hubert демонстрирует использование библиотеки YAML в проекте, отличном от Symfony.

Symfony2 имеет компонент YAML, который поддерживает большую часть спецификации YAML 1.2

https://github.com/symfony/Yaml

Я бы предложил, чтобы в этой статье был описан процесс http://devzone.zend.com/article/2585-using-yaml-with-php-and-pecl

Если вы используете много YAML в своем проекте, вы можете обнаружить, что чистые библиотеки PHP, такие как spyc или Symfony YAML, недостаточно быстры. Для C YAML-парсеров существует как минимум два привязки PHP:

  • yaml – обертка для библиотеки парсинга LibYAML YAML 1.1
  • syck – обертка для библиотеки анализатора Syck YAML 1.0

Если вам нужно быстро протестировать YAML, я построил: http://yaml-online-parser.appspot.com/ . Это помогает мне писать YAML, особенно когда вы просто учитесь.

Попробуйте sfYaml , это лучшее, что я знаю.

Symfony и Doctrine ORM используют этот.

Чтобы получить его, вы можете загрузить Doctrine 1.2 и извлечь sfYaml из каталога vendor .

Сообщите нам, подходит ли оно вашим потребностям.