Кто-нибудь знает хороший YAML Parser для PHP? Если да, то какие плюсы и минусы этой библиотеки?
PHP YAML Parsers
Ответ 1
Последнее обновление: 26 июля 2017 года
Здесь приведено резюме состояния YAML в PHP:
- Обертки для библиотек C: вы, вероятно, захотите их, если вам нужна максимальная скорость:
- php-yaml: Обертка для LibYAML, Доступно как расширение PECL; он также находится на документах по PHP.
- syck: привязка к syck; также доступен как расширение PECL. (датировано, см. ниже)
-
Чистые реализации PHP:
На момент написания этой статьи последние версии выпускают даты для вышеупомянутых библиотек и версии спецификация 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
Ответ 2
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);
Ответ 3
Symfony framework очень сильно использует YAML, это сообщение в блоге Grégoire Hubert демонстрирует использование своей библиотеки YAML в проекте, отличном от Symfony.
Ответ 4
Symfony2 имеет компонент YAML, который поддерживает большую часть спецификации YAML 1.2
Ответ 5
Я бы предложил, чтобы процесс, описанный в этой статье http://devzone.zend.com/article/2585-using-yaml-with-php-and-pecl
Ответ 6
Если вы используете много YAML в своем проекте, вы можете обнаружить, что чистые библиотеки PHP, такие как spyc или Symfony YAML, недостаточно быстры. Для C YAML-парсеров существует не менее двух привязок PHP:
Ответ 7
Если вам нужно быстро протестировать YAML, я построил: http://yaml-online-parser.appspot.com/. Это помогает мне писать YAML, особенно когда вы просто учитесь.
Ответ 8
Попробуйте sfYaml, это лучшее, что я знаю.
Symfony и Doctrine ORM используют этот.
Чтобы получить его, вы можете загрузить Doctrine 1.2 и извлечь sfYaml
из vendor
.
Сообщите нам, подходит ли оно вашим потребностям.