Kennt jemand einen guten YAML Parser für PHP? Wenn ja, welche Vor- und Nachteile hat diese Bibliothek?
Kennt jemand einen guten YAML Parser für PHP? Wenn ja, welche Vor- und Nachteile hat diese Bibliothek?
Antworten:
Letzte Aktualisierung : 26. Juli 2017
Hier ist eine Zusammenfassung des Status von YAML in PHP:
Reine PHP-Implementierungen:
Zum Zeitpunkt dieses Schreibens sind die neuesten Veröffentlichungsdaten für die oben genannten Bibliotheken und die von ihnen unterstützten Versionen der YAML-Spezifikation (1.2 ist die neueste Version):
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
Reine PHP-Implementierung, sodass Sie für die Installation keine Änderungen am Server vornehmen müssen. Wenn Geschwindigkeit von größter Bedeutung ist, ist dies möglicherweise nicht die ideale Lösung. Wenn Sie jedoch YAML für Konfigurationen oder für Anwendungen mit relativ geringem Volumen verwenden, ist dies eine fantastische Lösung.
Bei einem YAML-Dokument gibt Spyc ein Array zurück, das Sie nach Belieben verwenden können.
require_once "spyc.php";
$data = Spyc::YAMLLoad($myfile);
Bei einem bestimmten Array gibt Spyc eine Zeichenfolge zurück, die ein aus Ihren Daten erstelltes YAML-Dokument enthält.
$yaml_str = Spyc::YAMLDump($myarray);
Das Symfony-Framework nutzt YAML sehr stark. Dieser Blog-Beitrag von Grégoire Hubert demonstriert die Verwendung ihrer YAML-Bibliothek in einem Nicht-Symfony-Projekt.
Symfony2 verfügt über eine YAML-Komponente, die die meisten YAML 1.2-Spezifikationen unterstützt
sfYaml
zB ist.
Wenn Sie in Ihrem Projekt viel YAML verwenden, stellen Sie möglicherweise fest, dass die reinen PHP-Bibliotheken wie spyc oder Symfony YAML nicht schnell genug sind. Es gibt mindestens zwei PHP-Bindungen für C YAML-Parser:
Ich würde den in diesem Artikel beschriebenen Prozess vorschlagen: http://devzone.zend.com/article/2585-using-yaml-with-php-and-pecl
Versuchen Sie es mit sfYaml , es ist das Beste, was ich weiß.
Symfony und Doctrine ORM verwenden diesen.
Um es zu bekommen, können Sie Doctrine 1.2 herunterladen und sfYaml
aus dem vendor
Verzeichnis extrahieren .
Lassen Sie uns wissen, ob es Ihren Bedürfnissen entspricht.
Wenn Sie Ihre YAML schnell testen müssen, habe ich Folgendes erstellt : http://yaml-online-parser.appspot.com/ . Es hilft mir, YAML zu schreiben, besonders beim Lernen.