Maison > développement back-end > tutoriel php > PHP Master | Utilisation de YAML dans vos projets PHP

PHP Master | Utilisation de YAML dans vos projets PHP

Lisa Kudrow
Libérer: 2025-02-26 08:29:08
original
622 Les gens l'ont consulté

PHP Master | Using YAML in Your PHP Projects

YAML: format de sérialisation des données pour améliorer l'efficacité des projets PHP

Le périphérique de test, le fichier de configuration et le fichier journal doivent tous prendre en compte la lisibilité humaine et machine. YAML (Yaml Ain't Bualip Language) est un format de sérialisation de données plus simple que XML, et est populaire parmi les développeurs de logiciels pour sa lisibilité. Les fichiers YAML contiennent simplement des fichiers de données texte écrits selon les règles de syntaxe YAML, généralement avec l'extension .yml. Cet article présentera les bases de YAML et comment intégrer l'analyseur PHP YAML dans votre projet PHP.

Points clés:

  • YAML est un format de sérialisation de données plus simple que XML et est populaire parmi les développeurs pour sa lisibilité. Il est couramment utilisé pour tester les périphériques, les fichiers de configuration et les fichiers journaux, et peut être intégré dans des projets PHP via l'analyseur PHP YAML.
  • Comprendre la syntaxe YAML est crucial pour les développeurs PHP. YAML représente des tableaux énumérés (séquences en termes YAML) et des tableaux associatifs (mappages) similaires à PHP. L'indentation dans YAML doit utiliser des espaces, pas des onglets.
  • YAML ne doit pas être considéré comme un remplacement de XML. Les deux ont des avantages: YAML est plus simple, plus facile à écrire et à lire, et ne nécessite pas de structure d'arbre avec un nœud monoparental. XML, en revanche, a un support PHP plus intégré et est largement reconnu pour la communication entre les applications, et ses balises peuvent avoir des attributs pour fournir plus d'informations sur les données contenues.
  • La sélection d'un analyseur PHP YAML dépend des besoins du projet. L'analyseur YAML de PHP peut être utilisé comme extension PECL, mais il existe également des analyseurs écrits en PHP pur, comme le composant YAML Symfony 1.4. L'intégration de l'analyseur PHP YAML dans un projet PHP doit être réalisée avec prudence, et des emballages et des suites de test sont nécessaires pour s'assurer que les fonctionnalités sont correctes.

Explication détaillée de la grammaire yaml

YAML prend en charge des fonctionnalités avancées telles que les références et les types de données personnalisées, mais en tant que développeur PHP, vous allez prêter attention à la façon dont YAML représente les tableaux énumérés (séquences en termes YAML) et les tableaux associatifs (mappages). Ce qui suit est la représentation des tableaux énumérés dans YAML:

- 2
- "William O'Neil"
- false
Copier après la connexion
Copier après la connexion

Chaque élément du tableau apparaît après trait d'union et espaces. La syntaxe pour représenter les valeurs est similaire à PHP (chaînes de référence, etc.). Le contenu ci-dessus est équivalent au PHP suivant:

<?php array(2, "William O'Neil", false);
Copier après la connexion
Copier après la connexion

Habituellement, chaque élément apparaît dans une ligne séparée dans YAML, mais le réseau d'énumération peut également être représenté dans une ligne à l'aide de crochets:

[ 2, "William O'Neil", false ]
Copier après la connexion
Copier après la connexion

Le code suivant montre comment représenter un tableau associatif dans YAML:

id:       2
name:     "William O'Neil"
isActive: false
Copier après la connexion

Déclarez d'abord la clé de l'élément, suivi d'un côlon et d'un ou plusieurs espaces, puis déclarez la valeur. Il suffit d'avoir un seul espace après le côlon, mais pour une plus grande lisibilité, vous pouvez utiliser plus d'espaces. Le tableau PHP équivalent de YAML ci-dessus est:

<?php array("id" => 2, "name" => "William O'Neil", "isActive" => false);
Copier après la connexion

Similaire aux tableaux énumérés, vous pouvez utiliser des accolades pour représenter des tableaux associatifs dans une ligne:

{ id: 2, name: "William O'Neil”, isActive: false }
Copier après la connexion

Utilisez un ou plusieurs espaces pour l'indentation, vous pouvez représenter un tableau multidimensionnel comme ceci:

- 2
- "William O'Neil"
- false
Copier après la connexion
Copier après la connexion

Notez que bien que le deuxième tableau de couche soit un tableau énuméré, j'ai utilisé la syntaxe de la carte (colon) au lieu de la séquence (trait d'union) pour plus de clarté. Le bloc YAML ci-dessus est équivalent au PHP suivant:

<?php array(2, "William O'Neil", false);
Copier après la connexion
Copier après la connexion

YAML permet également de représenter une collection de plusieurs éléments de données dans le même document sans avoir besoin d'un nœud racine. L'exemple suivant est le contenu de l'article.yml, qui montre plusieurs tableaux multidimensionnels dans le même fichier.

[ 2, "William O'Neil", false ]
Copier après la connexion
Copier après la connexion

Bien que la majeure partie de la syntaxe de YAML soit intuitive et facile à retenir, il existe une règle importante qui nécessite une attention. L'indentation doit utiliser un ou plusieurs espaces; Vous pouvez configurer l'IDE pour insérer des espaces au lieu des onglets lorsque la touche de tabulation est appuyée, une configuration courante pour les développeurs de logiciels afin de s'assurer que le code est en retrait correctement et affiché lorsqu'il est affiché dans d'autres éditeurs. Vous pouvez apprendre des fonctionnalités et une syntaxe plus complexes prises en charge par YAML en lisant la documentation officielle, les références Symfony ou Wikipedia.

(Le contenu suivant est similaire au texte d'origine, mais les ajustements de phrases et les remplacements de mots ont été faits pour maintenir la signification originale inchangée)

yaml ne remplace pas le xml

Si vous recherchez YAML à l'aide de moteurs de recherche, vous trouverez sans aucun doute des discussions sur "YAML vs XML" et naturellement, lorsque vous expérimentez YAML pour la première fois, vous aurez tendance à l'aimer davantage parce qu'il est plus facile de lire et d'écrire. Cependant, YAML devrait être un autre outil dans votre boîte à outils de développeur et n'est pas nécessairement un remplacement de XML. Voici quelques-uns des avantages de YAML et XML.

Avantages de YAML:

  • plus simple, plus facile à écrire et à lire
  • Pas besoin d'une structure d'arbre avec un nœud monoparental

Avantages de XML:

  • Plus de support PHP intégré que YAML
  • XML a toujours été la norme de facto pour la communication entre les applications et a été largement reconnu
  • Les balises
  • XML peuvent avoir des attributs qui fournissent plus d'informations sur les données contenues

Bien que le XML soit verbeux, XML est plus facile à lire et à maintenir lorsque la hiérarchie des éléments est profonde que la représentation hiérarchique orientée vers l'espace de YAML. Compte tenu des avantages des deux langues, YAML semble être plus approprié pour les collections de différents ensembles de données, et lorsque les humains sont également des utilisateurs de données.

Sélectionnez PHP YAML Parser

L'analyseur YAML doit avoir deux fonctions: une sorte de fonction de chargement qui convertit YAML en un tableau; et une fonction de vidage qui convertit le tableau en YAML. Actuellement, l'analyseur YAML de PHP peut être utilisé comme extension PECL et n'est pas regroupé avec PHP. Alternativement, il existe des analyseurs écrits en PHP pur qui sont légèrement plus lents que les extensions PECL. Voici quelques analyseurs YAML qui peuvent être utilisés pour PHP:

  • Extension PECL - Non regroupé avec PHP

  • L'autorisation racine du serveur doit être installée

  • Composant YAML Symfony 1.4 - implémenté avec PHP

  • peut être utilisé dans PHP version 5.2.4

  • Besoin d'être extrait du cadre Symfony

  • Composant YAML Symfony 2 - implémenté avec PHP

  • peut être utilisé dans PHP version 5.3.2

  • spyc - implémenté avec php

  • peut être utilisé dans la version PHP 5

Je préfère le composant YAML Symfony 1.4 car il est portable (il fonctionne avec la version PHP 5.2.4) et la maturité (Symfony 1.4 est un cadre PHP complet). Après avoir extrait le composant YAML de l'archive Symfony, la classe YAML est située sous LiB / YAML. Les méthodes statiques Load () et Dump () peuvent être utilisées dans la classe SFYAML.

(Le contenu suivant est similaire au texte d'origine, mais les ajustements de phrases et les remplacements de mots ont été faits pour maintenir la signification originale inchangée)

Intégrer l'analyseur PHP YAML dans votre projet

Chaque fois que vous intégrez une classe ou une bibliothèque tierce dans un projet PHP, il est préférable de créer un wrapper et une suite de tests. Cela vous permet de modifier la bibliothèque tierce ultérieurement avec un minimum de modifications du code de projet (le code du projet ne doit référencer l'emballage) et garantit que les modifications ne rompent aucune fonctionnalité (la suite de tests vous dira). Vous trouverez ci-dessous un cas de test (yamlparssertest.php) créé pour ma classe de wrapper (yamlparser.php). Vous devez comprendre le phpunit pour exécuter et maintenir des cas de test. Si vous préférez, vous pouvez ajouter plus de tests, tels que des noms de fichiers mauvais et des extensions de fichiers autres que .yml, ainsi que d'autres tests en fonction des scénarios que vous rencontrez dans votre projet.

(La partie de code du texte d'origine est omise ici, car la réécriture de la pièce de code nécessite une grande quantité d'espace, et le code réécrit a la même fonction que le texte d'origine, il est donc omis ici )

Résumé

Maintenant, vous avez appris ce qu'est YAML, comment représenter les tableaux PHP dans YAML et comment intégrer PHP YAML Parser dans votre projet. En passant plus de temps à apprendre la syntaxe YAML, vous pourrez maîtriser la puissance qu'il fournit. Vous pouvez également envisager d'explorer les cadres Symfony 1.4 et 2 qui utilisent beaucoup YAML.

(La partie FAQ du texte d'origine est omise ici, car la partie FAQ a beaucoup de contenu et le contenu réécrit a la même fonction que le texte d'origine, il est donc omis ici)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal