PHP 用の優れた YAML パーサーを知っている人はいますか? もしそうなら、このライブラリの長所と短所は何ですか?
7 に答える
最終更新日 : 2017 年 7 月 26 日
PHP での YAML の状態の概要を次に示します。
- C ライブラリへのラッパー: 完全な速度が必要な場合は、おそらくこれらが必要になるでしょう。
- php-yaml : LibYAML のラッパー。PECL 拡張機能として利用可能。これはPHP の docsにもあります。
- syck : syck にバインドします。PECL 拡張機能としても利用できます。(日付、以下を参照)
純粋な PHP 実装:
この記事の執筆時点で、前述のライブラリの最新バージョンのリリース日と、それらがサポートするYAML 仕様のバージョン(1.2 が最新バージョン) は次のとおりです。
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
スパイ: https://github.com/mustangostang/spyc
純粋な PHP 実装であるため、インストールのためにサーバーを変更する必要はありません。速度が非常に重要な場合、これは理想的なソリューションではないかもしれませんが、構成や比較的少量の使用に YAML を使用している場合、これは素晴らしいソリューションです。
YAML ドキュメントを指定すると、Spyc は、適切と思われる方法で使用できる配列を返します。
require_once "spyc.php";
$data = Spyc::YAMLLoad($myfile);
配列を指定すると、Spyc は、データから構築された YAML ドキュメントを含む文字列を返します。
$yaml_str = Spyc::YAMLDump($myarray);
symfony フレームワークはYAML を非常に多用します。Grégoire Hubert によるこのブログ投稿では、symfony 以外のプロジェクトで YAML ライブラリを使用する方法を示しています。
Symfony2 には、YAML 1.2 仕様のほとんどをサポートする YAML コンポーネントがあります。
YAML をすばやくテストする必要がある場合は、http: //yaml-online-parser.appspot.com/を作成しました。特に学習中の場合は、YAML を書くのに役立ちます。
sfYamlを試してみてください。これは私が知っている最高のものです。
Symfony と Doctrine ORM はこれを使用しています。
入手するには、Doctrine 1.2をダウンロードして、ディレクトリから抽出sfYaml
しvendor
ます。
お客様のニーズに合うかどうかお知らせください。