PHP YAML 파서




parsing (6)

누구든지 PHP에 대한 좋은 YAML Parser를 알고 있습니까? 그렇다면이 도서관의 장단점은 무엇입니까?


최종 업데이트 : 2017 년 7 월 26 일

다음은 PHP에서 YAML의 상태를 요약 한 것입니다.

  • C 라이브러리의 래퍼 : 속도가 필요한 경우에는 다음을 원할 것입니다.
  • 순수한 PHP 구현 :

    • sfYaml : Symfony의 YAML 구성 요소. 저자의 동기를 here 볼 수 있습니다. 그는 " 사용하기 쉽고, 빠르고, 단위 테스트를 거쳤으며 명확한 오류 메시지가있는 것을 원했습니다 ."
    • spyc : 의존성이없는 YAML 파서

이 글을 쓰는 시점에서 최신 버전은 앞서 언급 한 라이브러리의 날짜를 제공하며 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 

Spyc : spyc

순수한 PHP 구현이므로 설치를 위해 서버를 수정할 필요가 없습니다. 속도가 심각한 문제라면, 이상적인 해결책은 아니 겠지만 YAML을 사용하여 구성이나 비교적 적은 볼륨으로 사용한다면 환상적인 솔루션입니다.

YAML 문서가 주어지면 Spyc는 사용할 수있는 배열을 반환하지만 적합하다고 생각합니다.

require_once "spyc.php";
$data = Spyc::YAMLLoad($myfile);

주어진 배열을 통해, Spyc은 데이터로부터 구축 된 YAML 문서를 포함하는 문자열을 반환 할 것입니다.

$yaml_str = Spyc::YAMLDump($myarray);


시도 sfYaml , 내가 아는 최고입니다.

Symfony와 Doctrine ORM이 이것을 사용하고 있습니다.

그것을 얻으려면 Doctrine 1.2를 다운로드 하고 vendor 디렉토리에서 sfYaml 을 추출 sfYaml .

귀하의 필요에 부합하는지 알려주십시오.


프로젝트에서 YAML을 많이 사용하고 있다면 spyc 또는 Symfony YAML과 같은 순수 PHP 라이브러리가 빠르지 않다는 것을 알 수 있습니다. C YAML 파서에는 최소한 두 가지 PHP 바인딩이 있습니다.

  • yaml - LibYAML YAML 1.1 파서 라이브러리의 래퍼
  • syck - Syck YAML 1.0 파서 라이브러리 용 래퍼





yaml