Хтось знає про хороший парсер YAML для PHP? Якщо так, то які плюси і мінуси цієї бібліотеки?
Хтось знає про хороший парсер YAML для PHP? Якщо так, то які плюси і мінуси цієї бібліотеки?
Відповіді:
Останнє оновлення : 26 липня 2017 року
Ось підсумок стану YAML в PHP:
Чисті реалізації 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
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, в цьому блозі по Грегуару Hubert демонструє використання їх бібліотек YAML в проекті без фреймворки.
Symfony2 має компонент YAML, який підтримує більшість специфікацій YAML 1.2
sfYaml
наприклад є.
Якщо ви використовуєте багато YAML у своєму проекті, ви можете виявити, що чисті бібліотеки PHP, такі як шпиц або Symfony YAML, не є досить швидкими. Існує щонайменше два прив'язки PHP для парсерів C YAML:
Я б запропонував процес, який слід в цій статті http://devzone.zend.com/article/2585-using-yaml-with-php-and-pecl
Спробуйте sfYaml , це найкраще, що я знаю.
Symfony та Doctrine ORM використовують це.
Щоб отримати його, ви можете завантажити Доктрину 1.2 та витягнути sfYaml
з vendor
каталогу.
Повідомте нас, чи відповідає вашим потребам.
Якщо вам потрібно швидко протестувати свій YAML, я створив: http://yaml-online-parser.appspot.com/ . Це допомагає мені писати YAML, особливо під час просто навчання.