yaml: Datenserialisierungsformat zur Verbesserung der Effizienz von PHP -Projekten
Das Testgerät, die Konfigurationsdatei und die Protokolldatei müssen alle sowohl menschliche als auch maschinelle Lesbarkeit berücksichtigen. YAML (YAML AIN MARKUP -Sprache) ist ein einfacheres Datenserialisierungsformat als XML und bei Softwareentwicklern für seine Leserbarkeit beliebt. YAML -Dateien enthalten einfach Textdatendateien, die gemäß den YAML -Syntaxregeln geschrieben wurden, normalerweise mit der Erweiterung .yml. In diesem Artikel werden die Grundlagen von YAML und die Integration des PHP YAML -Parsers in Ihr PHP -Projekt eingeführt.
Schlüsselpunkte:
detaillierte Erläuterung der Yaml -Grammatik
yaml unterstützt erweiterte Funktionen wie Referenzen und benutzerdefinierte Datentypen. Als PHP -Entwickler werden Sie jedoch darauf achten, wie YAML aufzählige Arrays (Sequenzen in YAML -Termen) und assoziative Arrays (Mappings) darstellt. Das Folgende ist die Darstellung von aufzähligen Arrays in YAML:
- 2 - "William O'Neil" - false
Jedes Element des Arrays erscheint nach Bindestrich und Räumen. Die Syntax zur Darstellung von Werten ähnelt PHP (Referenzzeichenfolgen usw.). Der obige Inhalt entspricht dem folgenden Php:
<?php array(2, "William O'Neil", false);
Normalerweise erscheint jedes Element in einer separaten Linie in Yaml, aber das Aufzählungsarray kann auch in einer Linie mit quadratischen Klammern dargestellt werden:
[ 2, "William O'Neil", false ]
Der folgende Code zeigt, wie ein assoziatives Array in YAML dargestellt wird:
id: 2 name: "William O'Neil" isActive: false
deklarieren Sie zuerst den Schlüssel des Elements, gefolgt von einem Dickdarm und einem oder mehreren Leerzeichen und dann den Wert. Es reicht aus, nur einen Raum nach dem Dickdarm zu haben, aber für eine größere Lesbarkeit können Sie mehr Räume nutzen. Das äquivalente PHP -Array des obigen Yaml ist:
<?php array("id" => 2, "name" => "William O'Neil", "isActive" => false);
Ähnlich wie aufgezählte Arrays können Sie Klammern verwenden, um assoziative Arrays in einer Zeile darzustellen:
{ id: 2, name: "William O'Neil”, isActive: false }
Verwenden Sie einen oder mehrere Leerzeichen für die Eindrücke. Sie können ein mehrdimensionales Array wie folgt darstellen:
- 2 - "William O'Neil" - false
Beachten Sie, dass zwar das zweite Schicht -Array ein aufgezählter Array ist, aber die Syntax von MAP (Dickdarm) anstelle von Sequenz (Bindestrich) für Klarheit verwendet habe. Der obige YAML -Block entspricht dem folgenden Php:
<?php array(2, "William O'Neil", false);
yaml ermöglicht auch eine Sammlung mehrerer Datenelemente im selben Dokument, ohne dass ein Stammknoten erforderlich ist. Das folgende Beispiel ist der Inhalt von article.yml, das mehrere mehrdimensionale Arrays in derselben Datei anzeigt.
[ 2, "William O'Neil", false ]
Obwohl der größte Teil der Syntax von YAML intuitiv und leicht zu erinnern ist, gibt es eine wichtige Regel, die Aufmerksamkeit erfordert. Die Einklebung muss einen oder mehrere Räume verwenden. Sie können die IDE so konfigurieren, dass sie Leerzeichen anstelle von Registerkarten einfügen, wenn die Registerkartenschlüssel gedrückt wird. Dies ist eine gemeinsame Konfiguration für Softwareentwickler, um sicherzustellen, dass der Code eingereicht und korrekt angezeigt wird, wenn sie in anderen Editoren angezeigt werden. Sie können komplexere Funktionen und Syntax erfahren, die von YAML unterstützt werden, indem Sie offizielle Dokumentation, Symfony -Referenzen oder Wikipedia lesen.
(Der folgende Inhalt ähnelt dem Originaltext, aber die Satzanpassungen und Wortersatz wurden vorgenommen, um die ursprüngliche Bedeutung unverändert zu halten)
yaml ist kein Ersatz für XML
Wenn Sie mit Suchmaschinen nach YAML suchen, werden Sie zweifellos Diskussionen über "Yaml vs. XML" finden. Wenn Sie YAML zum ersten Mal erleben, werden Sie es natürlich mehr mögen, weil es einfacher ist, zu lesen und zu schreiben. YAML sollte jedoch ein weiteres Tool in Ihrer Entwickler -Toolbox sein und ist nicht unbedingt ein Ersatz für XML. Hier sind einige der Vorteile von Yaml und XML.
Vorteile von YAML:
Vorteile von XML:
Obwohl XML ausführlich ist, ist XML leichter zu lesen und zu pflegen, wenn die Elementhierarchie tief ist als die raumorientierte hierarchische Darstellung von Yaml. Angesichts der Vorteile beider Sprachen scheint YAML besser für Sammlungen verschiedener Datensätze geeignet zu sein und wenn Menschen auch Datenbenutzer sind.
Wählen Sie PHP YAML -Parser
Der YAML -Parser sollte zwei Funktionen haben: eine Art Ladefunktion, die YAML in ein Array umwandelt; Derzeit kann der YAML -Parser von PHP als PECL -Erweiterung verwendet werden und wird nicht mit PHP gebündelt. Alternativ sind Parser in reinem PHP geschrieben, die etwas langsamer sind als Pecl -Erweiterungen. Hier sind einige YAML -Parsers, die für PHP verwendet werden können:
Pecl -Erweiterung - nicht mit PHP
gebündeltDie Stammberechtigung des Servers muss installiert werden
Symfony 1.4 YAML -Komponente - implementiert mit PHP
kann in PHP Version 5.2.4
verwendet werdenmuss aus dem Symfony -Framework
extrahiert werdenSymfony 2 YAML -Komponente - implementiert mit PHP
kann in PHP Version 5.3.2
verwendet werdenspyc - implementiert mit PHP
kann in der PHP 5 -Version
verwendet werdenIch bevorzuge die Symfony 1.4 YAML -Komponente, da es tragbar ist (es funktioniert mit PHP 5.2.4 -Version) und Reife (Symfony 1.4 ist ein vollständiges PHP -Framework). Nachdem die YAML -Komponente aus dem Symfony -Archiv extrahiert wurde, befindet sich die YAML -Klasse unter lib/yaml. Die statischen Methoden Load () und Dump () können in der SFYAML -Klasse verwendet werden.
(Der folgende Inhalt ähnelt dem Originaltext, aber die Satzanpassungen und Wortersatz wurden vorgenommen, um die ursprüngliche Bedeutung unverändert zu halten)
Integrieren Sie den PHP YAML -Parser in Ihr Projekt
Wenn Sie eine Klasse oder Bibliothek in Drittanbietern in ein PHP-Projekt integrieren, erstellen Sie am besten eine Wrapper und eine Testsuite. Auf diese Weise können Sie die Bibliothek von Drittanbietern später mit minimalen Änderungen am Projektcode ändern (der Projektcode sollte nur auf den Wrapper verweisen) und stellt sicher, dass die Änderungen keine Funktionalität brechen (die Testsuite zeigt Ihnen an). Im Folgenden finden Sie einen Testfall (YamlParSertest.php), der für meine Wrapper -Klasse (yamlparser.php) erstellt wurde. Sie müssen Phpunit verstehen, um Testfälle zu betreiben und zu pflegen. Wenn Sie es vorziehen, können Sie weitere Tests hinzufügen, z. B. andere falsche Dateinamen und Dateiverlängerungen als .yml sowie andere Tests, die auf Szenarien basieren, die Sie in Ihrem Projekt begegnen.
(Der Code -Teil im Originaltext wird hier weggelassen, da die Umschreibung des Code -Teils eine große Menge an Platz erfordert und der umgeschriebene Code die gleiche Funktion wie der ursprüngliche Text hat, sodass er hier weggelassen wird )
Zusammenfassung
Jetzt haben Sie gelernt, was YAML ist, wie man PHP -Arrays in YAML darstellt und wie man PHP YAML -Parser in Ihr Projekt integriert. Indem Sie mehr Zeit damit verbringen, die YAML -Syntax zu lernen, können Sie die Stromversorgung beherrschen. Sie können auch in Betracht ziehen, Symfony 1.4 und 2 Frameworks zu untersuchen, die YAML ausführlich verwenden.
(Der FAQ -Teil im Originaltext wird hier weggelassen, da der FAQ -Teil viele Inhalte hat und der umgeschriebene Inhalt die gleiche Funktion wie der Originaltext hat, so dass er hier weggelassen wird)
Das obige ist der detaillierte Inhalt vonPHP Master | Verwenden Sie YAML in Ihren PHP -Projekten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!