Qualcuno conosce un buon Parser YAML per PHP? In caso affermativo, quali sono i pro e i contro di questa libreria?
Qualcuno conosce un buon Parser YAML per PHP? In caso affermativo, quali sono i pro e i contro di questa libreria?
Risposte:
Ultimo aggiornamento : 26 luglio 2017
Ecco un riepilogo dello stato di YAML in PHP:
Implementazioni PHP pure:
Al momento della stesura di questo articolo, le date di rilascio delle ultime versioni per le suddette librerie e le versioni della specifica YAML (1.2 è l'ultima versione) supportate sono:
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
Implementazione PHP pura, quindi non è necessario apportare modifiche al server per l'installazione. Se la velocità è motivo di grave preoccupazione, potrebbe non essere la soluzione ideale, ma se utilizzi YAML per le configurazioni o per un volume relativamente basso, è una soluzione fantastica.
Dato un documento YAML, Spyc restituirà un array che puoi usare come meglio credi.
require_once "spyc.php";
$data = Spyc::YAMLLoad($myfile);
Dato un array, Spyc restituirà una stringa che contiene un documento YAML costruito dai tuoi dati.
$yaml_str = Spyc::YAMLDump($myarray);
Il framework symfony fa un uso molto pesante di YAML, questo post sul blog di Grégoire Hubert mostra come usare la loro libreria YAML in un progetto non symfony.
Symfony2 ha un componente YAML che supporta la maggior parte delle specifiche YAML 1.2
sfYaml
ad esempio è.
Se stai usando molto YAML nel tuo progetto potresti scoprire che le librerie PHP pure come spyc o Symfony YAML non sono abbastanza veloci. Esistono almeno due collegamenti PHP per i parser C YAML:
Suggerirei il processo seguito in questo articolo http://devzone.zend.com/article/2585-using-yaml-with-php-and-pecl
Prova sfYaml , è il migliore che conosco.
Symfony e Doctrine ORM stanno usando questo.
Per ottenerlo, puoi scaricare Doctrine 1.2 ed estrarlo sfYaml
dalla vendor
directory.
Fateci sapere se si adatta alle vostre esigenze.
Se hai bisogno di testare rapidamente il tuo YAML, ho creato: http://yaml-online-parser.appspot.com/ . Mi aiuta a scrivere YAML, specialmente mentre sto solo imparando.