ホームページ > バックエンド開発 > PHPチュートリアル > PHPマスター| PHPプロジェクトでYAMLを使用します

PHPマスター| PHPプロジェクトでYAMLを使用します

Lisa Kudrow
リリース: 2025-02-26 08:29:08
オリジナル
620 人が閲覧しました

PHP Master | Using YAML in Your PHP Projects

YAML:PHPプロジェクトの効率を改善するためのデータシリアル化形式

テストデバイス、構成ファイル、ログファイルはすべて、人間とマシンの読みやすさの両方を考慮する必要があります。 YAML(YAML AIN NOT MARKUP LANGUAGE)は、XMLよりも単純なデータシリアル化形式であり、その読みやすさでソフトウェア開発者の間で人気があります。 YAMLファイルには、YAML構文ルールに従って記述されたテキストデータファイルが含まれています。この記事では、YAMLの基本と、PHPプロジェクトにPHP YAMLパーサーを統合する方法を紹介します。

キーポイント:

  • YAMLは、XMLよりもシンプルなデータシリアル化形式であり、その読みやすさで開発者の間で人気があります。一般に、デバイス、構成ファイル、ログファイルのテストに使用され、PHP YAMLパーサーを介してPHPプロジェクトに統合できます。
  • PHP開発者にとってYAML構文の理解は重要です。 YAMLは、PHPと同様の列挙アレイ(YAML用語のシーケンス)および連想配列(マッピング)を表します。 YAMLのインデントは、タブではなくスペースを使用する必要があります。
  • yamlはXMLの代替品と見なされるべきではありません。どちらにも利点があります:YAMLはよりシンプルで、書き込みと読み取りが簡単で、単一の親ノードを持つツリー構造は必要ありません。一方、XMLはより組み込みのPHPサポートを備えており、アプリケーション間の通信について広く認識されており、そのタグには、含まれるデータに関するより多くの情報を提供するための属性があります。
  • PHP YAMLパーサーの選択は、プロジェクトのニーズに依存します。 PHPのYAMLパーサーはPECL拡張機能として使用できますが、Symfony 1.4 YAMLコンポーネントなどの純粋なPHPに記載されているパーサーもあります。 PHP YAMLパーサーをPHPプロジェクトに統合することは注意して行う必要があり、機能性が正しいことを確認するためにラッパーとテストスイートが必要です。

YAML文法の詳細な説明

YAMLは参照やカスタムデータ型などの高度な機能をサポートしていますが、PHP開発者としては、YAMLが列挙された配列(YAML用語のシーケンス)と連想配列(マッピング)をどのように表すかに注意してください。以下は、YAMLの列挙された配列の表現です:

- 2
- "William O'Neil"
- false
ログイン後にコピー
ログイン後にコピー
アレイの各要素は、ハイフンとスペースの後に表示されます。値を表すための構文は、PHP(参照文字列など)に似ています。上記のコンテンツは、次のPHPと同等です。

通常、各要素は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の利点:

よりシンプルで、書くのが簡単で読みやすい

    片方の親ノードを持つツリー構造は不要
  • XMLの利点:

Yaml

よりも組み込まれたPHPサポート
    XMLは常にアプリケーション間のコミュニケーションの事実上の基準であり、広く認識されています
  • XMLタグには、含まれるデータに関するより多くの情報を提供する属性を持つことができます
  • XMLは冗長ですが、XMLは、要素の階層がYAMLの空間指向の階層表現よりも深い場合、読み取りと維持が容易です。両方の言語の利点を考えると、YAMLはさまざまなデータセットの収集や、人間もデータユーザーである場合に適しているようです。

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート