Czy ktoś zna dobry parser YAML dla PHP? Jeśli tak, jakie są wady i zalety tej biblioteki?
Czy ktoś zna dobry parser YAML dla PHP? Jeśli tak, jakie są wady i zalety tej biblioteki?
Odpowiedzi:
Ostatnia aktualizacja : 26 lipca 2017 r
Oto podsumowanie stanu YAML w PHP:
Czyste implementacje PHP:
W chwili pisania tego tekstu, daty wydania najnowszych wersji wspomnianych bibliotek i obsługiwane przez nie wersje specyfikacji YAML (1.2 to najnowsza wersja) to:
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
Szpieg: https://github.com/mustangostang/spyc
Czysta implementacja PHP, więc nie musisz dokonywać żadnych modyfikacji serwera w celu instalacji. Jeśli zależy Ci na szybkości, może to nie być idealne rozwiązanie, ale jeśli używasz YAML do konfiguracji lub stosunkowo niskiego wolumenu, jest to fantastyczne rozwiązanie.
Biorąc pod uwagę dokument YAML, Spyc zwróci tablicę, której możesz użyć w dowolny sposób.
require_once "spyc.php";
$data = Spyc::YAMLLoad($myfile);
Biorąc pod uwagę tablicę, Spyc zwróci napis zawierający dokument YAML zbudowany z twoich danych.
$yaml_str = Spyc::YAMLDump($myarray);
Framework symfony sprawia bardzo ciężki wykorzystanie YAML, tym blogu Grégoire Hubert demonstruje korzystania z ich biblioteki YAML w projekt non-symfony.
Symfony2 ma komponent YAML, który obsługuje większość specyfikacji YAML 1.2
sfYaml
np. jest.
Jeśli używasz dużo YAML w swoim projekcie, może się okazać, że czyste biblioteki PHP, takie jak spyc lub Symfony YAML, nie są wystarczająco szybkie. Istnieją co najmniej dwa powiązania PHP dla parserów C YAML:
Proponuję proces opisany w tym artykule http://devzone.zend.com/article/2585-using-yaml-with-php-and-pecl
Spróbuj sfYaml , to najlepsze, co znam.
Symfony i Doctrine ORM używają tego.
Aby go zdobyć, możesz pobrać Doctrine 1.2 i wypakować sfYaml
zvendor
katalogu.
Daj nam znać, jeśli odpowiada Twoim potrzebom.
Jeśli chcesz szybko przetestować swój YAML, zbudowałem: http://yaml-online-parser.appspot.com/ . Pomaga mi w pisaniu YAML, zwłaszcza podczas nauki.