+1 chociaż nie konstruktywna, ta strona była dla mnie niezwykle pomocna
Erick Robertson
2
biorąc pod uwagę jakość odpowiedzi na to pytanie, która uzyskała najwięcej głosów, zdumiewające jest, że pytanie to zostało zamknięte jako „nie konstruktywne”.
dreftymac
Właśnie wydałem mój parser BabyYaml, który jest prostszym kuzynem Yamla, jeśli jesteś zainteresowany, sprawdź to tutaj: github.com/lingtalfi/BabyYaml
ling
Muszę zgodzić się z ErickRobertson i dreftymac, co dosłownie dobrze odpowiedziało na moje pytanie, a zamknięcie go uniemożliwiło dalsze możliwe dobre odpowiedzi.
Pharaoh Tools
Odpowiedzi:
139
Ostatnia aktualizacja : 26 lipca 2017 r
Oto podsumowanie stanu YAML w PHP:
Opakowania do bibliotek C: prawdopodobnie będziesz ich potrzebować, jeśli potrzebujesz czystej szybkości:
syck : powiązanie z syck; dostępne również jako rozszerzenie PECL. (z datą, patrz poniżej)
Czyste implementacje PHP:
sfYaml : komponent YAML Symfony. Można zobaczyć motywacje jego autorów tutaj . Chciał czegoś, co byłoby „ łatwe w użyciu, szybkie, przetestowane pod kątem urządzeń i posiadające jasne komunikaty o błędach ”.
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:
Istnieją inne mniej znane biblioteki (takie jak ta , z projektu Horde), ale nie chciałem się w nie zagłębiać.
NullUserException
3
Używam sfYaml od około dwóch lat i podczas testu wydajności stwierdziłem, że sfYaml :: parse () zajęło najwięcej czasu przetwarzania. Zastąpiłem go php-yaml i aplikacja jest teraz o 70% szybsza! To ogromna różnica.
Attila Fulop
1
Aktualizacja 2019 dla PHP: "spyc" ma tak wiele problemów, podczas gdy "sfYaml" działa dobrze.
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.
+1 Chciałem tylko szybkiego i łatwego sposobu użycia YAML w skrypcie importu. Moja aplikacja nie potrzebuje żadnego wsparcia poza importem (i prawdopodobnie kiedyś eksportem). Odkryłem, że spyc, wymieniony jako „kolejny parser YAML”, był rozwiązaniem jednym kliknięciem. Wrzuciłem jeden skrypt do folderu skryptów, dołączyłem go i wywołałem jedną metodę. Nie ma nic prostszego, a teraz wracam do pracy - usunięto blokadę.
Erick Robertson,
1
Nieaktualne i wiele niepoprawnie parsowanych plików yaml (niektóre dane są tracone).
ViliusL
15
Framework symfony sprawia bardzo ciężki wykorzystanie YAML, tym blogu Grégoire Hubert demonstruje korzystania z ich biblioteki YAML w projekt non-symfony.
To dobra odpowiedź, ponieważ parser Symfony2 YAML nie jest przestarzały. sfYamlnp. jest.
ferdynator
3
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:
yaml - opakowanie dla biblioteki parsera LibYAML YAML 1.1
syck - opakowanie dla biblioteki parsera Syck YAML 1.0
Odpowiedzi:
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:
źródło
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.
Biorąc pod uwagę tablicę, Spyc zwróci napis zawierający dokument YAML zbudowany z twoich danych.
źródło
Framework symfony sprawia bardzo ciężki wykorzystanie YAML, tym blogu Grégoire Hubert demonstruje korzystania z ich biblioteki YAML w projekt non-symfony.
źródło
Symfony2 ma komponent YAML, który obsługuje większość specyfikacji YAML 1.2
https://github.com/symfony/Yaml
źródło
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:
źródło
Proponuję proces opisany w tym artykule http://devzone.zend.com/article/2585-using-yaml-with-php-and-pecl
źródło
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.
źródło
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.
źródło