Est-ce que quelqu'un connaît un bon analyseur YAML pour PHP? Si oui, quels sont les avantages et les inconvénients de cette bibliothèque?
Est-ce que quelqu'un connaît un bon analyseur YAML pour PHP? Si oui, quels sont les avantages et les inconvénients de cette bibliothèque?
Réponses:
Dernière mise à jour : 26 juillet 2017
Voici un résumé de l'état de YAML en PHP:
Implémentations PHP pures:
Au moment d'écrire ces lignes, les dernières dates de publication des versions pour les bibliothèques susmentionnées et les versions de la spécification YAML (1.2 est la dernière version) qu'elles prennent en charge sont:
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
Implémentation PHP pure, vous n'avez donc pas besoin d'apporter de modifications au serveur pour l'installation. Si la vitesse est une préoccupation majeure, ce n'est peut-être pas la solution idéale, mais si vous utilisez YAML pour des configurations ou une utilisation à volume relativement faible, c'est une solution fantastique.
Étant donné un document YAML, Spyc renverra un tableau que vous pouvez utiliser comme bon vous semble.
require_once "spyc.php";
$data = Spyc::YAMLLoad($myfile);
Étant donné un tableau, Spyc renverra une chaîne contenant un document YAML construit à partir de vos données.
$yaml_str = Spyc::YAMLDump($myarray);
Le framework symfony fait un usage très intensif de YAML, ce billet de blog de Grégoire Hubert montre comment utiliser leur bibliothèque YAML dans un projet non symfony.
Symfony2 a un composant YAML qui prend en charge la plupart des spécifications YAML 1.2
sfYaml
par exemple.
Si vous utilisez beaucoup de YAML dans votre projet, vous constaterez peut-être que les bibliothèques PHP pures comme spyc ou Symfony YAML ne sont pas assez rapides. Il existe au moins deux liaisons PHP pour les analyseurs C YAML:
Je suggère le processus suivi dans cet article http://devzone.zend.com/article/2585-using-yaml-with-php-and-pecl
Essayez sfYaml , c'est le meilleur que je connaisse.
Symfony et Doctrine ORM utilisent celui-ci.
Pour l'obtenir, vous pouvez télécharger Doctrine 1.2 et extraire sfYaml
du vendor
répertoire.
Faites-nous savoir si cela répond à vos besoins.
Si vous avez besoin de tester votre YAML rapidement, j'ai construit: http://yaml-online-parser.appspot.com/ . Cela m'aide à écrire YAML, surtout tout en apprenant.