YAML:PHPプロジェクトの効率を改善するためのデータシリアル化形式
テストデバイス、構成ファイル、ログファイルはすべて、人間とマシンの読みやすさの両方を考慮する必要があります。 YAML(YAML AIN NOT MARKUP LANGUAGE)は、XMLよりも単純なデータシリアル化形式であり、その読みやすさでソフトウェア開発者の間で人気があります。 YAMLファイルには、YAML構文ルールに従って記述されたテキストデータファイルが含まれています。この記事では、YAMLの基本と、PHPプロジェクトにPHP YAMLパーサーを統合する方法を紹介します。
キーポイント:
YAML文法の詳細な説明
YAMLは参照やカスタムデータ型などの高度な機能をサポートしていますが、PHP開発者としては、YAMLが列挙された配列(YAML用語のシーケンス)と連想配列(マッピング)をどのように表すかに注意してください。以下は、YAMLの列挙された配列の表現です:
- 2 - "William O'Neil" - false
通常、各要素はyamlの別の線に表示されますが、列挙配列は角括弧を使用して行で表現することもできます。
<?php array(2, "William O'Neil", false);
次のコードは、YAMLで連想配列を表す方法を示しています:
[ 2, "William O'Neil", false ]
最初に要素の鍵を宣言し、その後にコロンと1つ以上の空間が続き、次に値を宣言します。コロンの後に1つのスペースしか持たないだけで十分ですが、読みやすさを高めるために、より多くのスペースを使用できます。上記のYAMLの同等のPHPアレイは次のとおりです。
id: 2 name: "William O'Neil" isActive: false
インデントのために1つ以上のスペースを使用すると、次のような多次元配列を表すことができます。
- 2 - "William O'Neil" - false
2番目のレイヤー配列は列挙された配列ですが、明確にするためにシーケンス(ハイフン)の代わりにMAP(コロン)の構文を使用したことに注意してください。上記のYAMLブロックは、次のPHPと同等です。
また、YAMLでは、ルートノードを必要とせずに、同じドキュメント内の複数のデータ要素のコレクションを表すこともできます。次の例は、同じファイルにいくつかの多次元配列を示すarticle.ymlの内容です。<?php array(2, "William O'Neil", false);
YAMLの構文のほとんどは直感的で覚えやすいですが、注意が必要な重要なルールがあります。インデントは1つ以上のスペースを使用する必要があります。タブキーが押されたときにタブの代わりにスペースを挿入するようにIDEを構成することができます。ソフトウェア開発者が共通の構成であり、他の編集者で表示されるとコードが正しく表示されて表示されるようにします。公式のドキュメンテーション、Symfony参照、またはウィキペディアを読むことで、YAMLがサポートするより複雑な機能と構文を学ぶことができます。
[ 2, "William O'Neil", false ]
yamlはxml
の代替ではありません検索エンジンを使用してYAMLを検索すると、間違いなく「YAML対XML」についての議論を見つけることができます。当然、YAMLを最初に経験したとき、読みや書き込みが簡単であるため、より好きになる傾向があります。ただし、YAMLは開発者ツールボックスの別のツールである必要があり、必ずしもXMLの代替ではありません。 YAMLとXMLの利点の一部を以下に示します。
yamlの利点:よりシンプルで、書くのが簡単で読みやすい
Yaml
よりも組み込まれたPHPサポートphp yaml parserを選択
を選択します YAMLパーサーには、YAMLを配列に変換するいくつかの荷重関数と、配列をYAMLに変換する2つの機能が必要です。現在、PHPのYAMLパーサーはPECL拡張機能として使用でき、PHPにバンドルされていません。あるいは、PECL拡張よりもわずかに遅い純粋なPHPで書かれたパーサーがあります。 PHPに使用できるいくつかのYAMLパーサーを次に示します:
pecl拡張 - php
サーバーのルート許可をインストールする必要があります
symfony 1.4 yamlコンポーネント-Php
は、PHPバージョン5.2.4
Symfonyフレームワークから抽出する必要があります
Symfony 2 YAMLコンポーネント-PHP
で実装されていますは、PHPバージョン5.3.2
で使用できますspyc- php
で実装されていますは、PHP 5バージョン
で使用できますsymfony 1.4 YAMLコンポーネントは、ポータブル(PHP 5.2.4バージョンで動作する)と成熟度(Symfony 1.4は完全なPHPフレームワークであるため)であるためです。 SymfonyアーカイブからYAMLコンポーネントを抽出した後、YAMLクラスはLIB/YAMLの下にあります。静的メソッドLoad()およびDump()は、SFYAMLクラスで使用できます。
(次のコンテンツは元のテキストに似ていますが、元の意味を変更しないように文の調整と単語の置換が行われました)
PHP YAMLパーサーをプロジェクトに統合します
サードパーティのクラスまたはライブラリをPHPプロジェクトに統合するときはいつでも、ラッパーとテストスイートを作成するのが最善です。これにより、プロジェクトコードの変更を最小限に抑えてサードパーティライブラリを後で変更することができます(プロジェクトコードはラッパーのみを参照する必要があります)、変更が機能を破らないようにします(テストスイートはあなたに伝えます)。以下は、ラッパークラス(yamlparser.php)用に作成されたテストケース(yamlparsertest.php)です。テストケースを実行および維持するには、phpunitを理解する必要があります。必要に応じて、.yml以外のファイル名やファイル拡張子や、プロジェクトで遭遇するシナリオに基づいた他のテストなど、さらにテストを追加できます。
(コードパーツの書き換えには大量のスペースが必要であり、書き換えられたコードが元のテキストと同じ関数を持っているため、ここでは省略されているため、ここでは元のテキストのコードパーツが省略されているため、ここでは省略されています。 )
概要
今、あなたはYAMLとは何か、YAMLでPHPアレイを表現する方法、およびプロジェクトにPHP YAMLパーサーを統合する方法を学びました。 YAML構文を学ぶことにもっと時間を費やすことで、それが提供するパワーをマスターすることができます。また、YAMLを広範囲に使用するSymfony 1.4と2のフレームワークを探索することを検討することもできます。
(元のテキストのFAQパーツはここでは省略されています。FAQパーツには多くのコンテンツがあり、書き換えられたコンテンツには元のテキストと同じ関数があるため、ここで省略されています)
以上がPHPマスター| PHPプロジェクトでYAMLを使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。