Có ai biết về một trình phân tích cú pháp YAML tốt cho PHP không? Nếu vậy, ưu và nhược điểm của thư viện này là gì?
Có ai biết về một trình phân tích cú pháp YAML tốt cho PHP không? Nếu vậy, ưu và nhược điểm của thư viện này là gì?
Câu trả lời:
Cập nhật lần cuối : ngày 26 tháng 7 năm 2017
Dưới đây là tóm tắt về trạng thái của YAML trong PHP:
Triển khai PHP thuần túy:
Tại thời điểm viết bài này, ngày phát hành phiên bản mới nhất cho các thư viện nói trên và các phiên bản của thông số kỹ thuật YAML (1.2 là phiên bản mới nhất) mà chúng hỗ trợ là:
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
Spyc: https://github.com/mustangostang/spyc
Triển khai PHP thuần túy, vì vậy bạn không cần thực hiện bất kỳ sửa đổi nào đối với máy chủ để cài đặt. Nếu tốc độ là mối quan tâm nghiêm trọng, nó có thể không phải là giải pháp lý tưởng, nhưng nếu bạn đang sử dụng YAML cho các cấu hình hoặc sử dụng với khối lượng tương đối thấp, thì đó là một giải pháp tuyệt vời.
Với một tài liệu YAML, Spyc sẽ trả về một mảng mà bạn có thể sử dụng theo cách nào bạn thấy phù hợp.
require_once "spyc.php";
$data = Spyc::YAMLLoad($myfile);
Cho một mảng, Spyc sẽ trả về một chuỗi chứa tài liệu YAML được xây dựng từ dữ liệu của bạn.
$yaml_str = Spyc::YAMLDump($myarray);
Các Symfony framework tận dụng rất nặng của YAML, đây bài viết blog của Grégoire Hubert chứng tỏ sử dụng thư viện YAML của họ trong một dự án phi symfony.
Symfony2 có một thành phần YAML hỗ trợ hầu hết các thông số kỹ thuật YAML 1.2
sfYaml
ví dụ là.
Nếu đang sử dụng nhiều YAML trong dự án của mình, bạn có thể thấy rằng các thư viện PHP thuần như spyc hoặc Symfony YAML không đủ nhanh. Có ít nhất hai liên kết PHP cho trình phân tích cú pháp C YAML:
Tôi đề xuất quy trình được theo sau trong bài viết này http://devzone.zend.com/article/2585-using-yaml-with-php-and-pecl
Hãy thử sfYaml , nó là tốt nhất mà tôi biết.
Symfony và Doctrine ORM đang sử dụng cái này.
Để có được nó, bạn có thể Tải xuống Doctrine 1.2 và giải nén sfYaml
từ vendor
thư mục.
Hãy cho chúng tôi biết nếu nó phù hợp với nhu cầu của bạn.
Nếu bạn cần nhanh chóng kiểm tra YAML của mình, tôi đã xây dựng: http://yaml-online-parser.appspot.com/ . Nó giúp tôi viết YAML, đặc biệt là trong khi vừa học.