+1 Obwohl nicht konstruktiv, war diese Seite für mich äußerst hilfreich
Erick Robertson
2
Angesichts der Qualität der am höchsten bewerteten Antwort auf diese Frage ist es erstaunlich, dass diese Frage als "nicht konstruktiv" abgeschlossen wurde.
Dreftymac
Ich habe gerade meinen Parser von BabyYaml veröffentlicht, der ein einfacherer Cousin von Yaml ist. Wenn Sie interessiert sind, lesen Sie ihn hier: github.com/lingtalfi/BabyYaml
ling
Ich muss ErickRobertson und dreftymac zustimmen, dies hat meine Frage buchstäblich gut beantwortet, und das Schließen hat weitere mögliche gute Antworten verhindert.
Pharao Tools
Antworten:
139
Letzte Aktualisierung : 26. Juli 2017
Hier ist eine Zusammenfassung des Status von YAML in PHP:
Wrapper für C-Bibliotheken: Sie werden diese wahrscheinlich wollen, wenn Sie reine Geschwindigkeit benötigen:
syck : Bindung an syck; auch als PECL-Erweiterung erhältlich. (datiert, siehe unten)
Reine PHP-Implementierungen:
sfYaml : Die YAML-Komponente von Symfony. Die Motivationen der Autoren finden Sie hier . Er wollte etwas, das " einfach zu bedienen, schnell, gerätetestet und mit klaren Fehlermeldungen " war.
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):
Es gibt andere weniger bekannte Bibliotheken (wie diese aus dem Horde-Projekt), aber ich wollte mich nicht viel damit befassen.
NullUserException
3
Ich benutze sfYaml seit ungefähr zwei Jahren und bei einem Leistungstest wurde mir klar, dass sfYaml :: parse () die meiste Verarbeitungszeit in Anspruch nahm. Ich habe es durch PHP-Yaml ersetzt und die Anwendung ist jetzt 70% schneller! Das ist ein großer Unterschied.
Attila Fulop
1
2019 Update für PHP: "spyc" hat so viele Probleme, während "sfYaml" gut funktioniert.
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.
+1 Ich wollte nur eine schnelle und einfache Möglichkeit, YAML in einem Importskript zu verwenden. Meine Anwendung benötigt keine Unterstützung über Importe (und wahrscheinlich eines Tages Exporte) hinaus. Ich fand, dass Spyc, aufgeführt als "ein weiterer YAML-Parser", eine 1-Klick-Lösung war. Ich habe das eine Skript in meinen Skriptordner gelegt, es aufgenommen und eine Methode aufgerufen. Einfacher geht es nicht, und jetzt mache ich mich wieder an die Arbeit - Straßensperre entfernt.
Erick Robertson
1
Veraltete und viele Parse-Yaml-Dateien falsch (einige Daten gehen verloren).
Dies ist eine gute Antwort, da der Symfony2 YAML-Parser nicht veraltet ist. sfYamlzB ist.
Ferdynator
3
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:
yaml - ein Wrapper für die Parser-Bibliothek LibYAML YAML 1.1
syck - ein Wrapper für die Syck YAML 1.0-Parser-Bibliothek
Antworten:
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):
quelle
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.
Bei einem bestimmten Array gibt Spyc eine Zeichenfolge zurück, die ein aus Ihren Daten erstelltes YAML-Dokument enthält.
quelle
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.
quelle
Symfony2 verfügt über eine YAML-Komponente, die die meisten YAML 1.2-Spezifikationen unterstützt
https://github.com/symfony/Yaml
quelle
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:
quelle
Ich würde den in diesem Artikel beschriebenen Prozess vorschlagen: http://devzone.zend.com/article/2585-using-yaml-with-php-and-pecl
quelle
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 demvendor
Verzeichnis extrahieren .Lassen Sie uns wissen, ob es Ihren Bedürfnissen entspricht.
quelle
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.
quelle