+1 meskipun tidak konstruktif, laman ini sangat membantu saya
Erick Robertson
2
mengingat kualitas jawaban yang paling banyak dipilih untuk pertanyaan ini, sungguh mengherankan bahwa pertanyaan ini ditutup sebagai "tidak konstruktif".
dreftymac
Saya baru saja merilis parser BabyYaml saya, yang merupakan sepupu sederhana Yaml, jika Anda tertarik lihat di sini: github.com/lingtalfi/BabyYaml
ling
Saya harus setuju dengan ErickRobertson dan dreftymac ini benar-benar menjawab pertanyaan saya dengan baik, dan menutupnya telah mencegah kemungkinan jawaban yang lebih baik.
Pharaoh Tools
Jawaban:
139
Terakhir diperbarui : 26 Juli 2017
Berikut ringkasan status YAML dalam PHP:
Pembungkus ke pustaka C: Anda mungkin menginginkan ini jika Anda membutuhkan kecepatan:
php-yaml : Pembungkus untuk LibYAML . Tersedia sebagai ekstensi PECL; itu juga yang ada di dokumen PHP .
syck : Mengikat ke syck; juga tersedia sebagai ekstensi PECL. (tertanggal, lihat di bawah)
Implementasi PHP murni:
sfYaml : Komponen YAML Symfony. Anda bisa melihat motivasi penulisnya di sini . Dia menginginkan sesuatu yang " mudah digunakan, cepat, unit teruji dan memiliki pesan kesalahan yang jelas ."
Pada saat penulisan ini, tanggal rilis versi terbaru untuk pustaka yang disebutkan di atas dan versi spesifikasi YAML (1.2 adalah versi terbaru) yang mereka dukung adalah:
Ada perpustakaan lain yang kurang dikenal (seperti ini , dari proyek Horde), tetapi saya tidak ingin mendalami ini banyak.
NullUserException
3
Saya telah menggunakan sfYaml selama sekitar dua tahun, dan pada tes kinerja saya menyadari bahwa sfYaml :: parse () mengambil sebagian besar waktu pemrosesan. Saya menggantinya dengan php-yaml dan aplikasinya sekarang 70% lebih cepat! Itu perbedaan yang sangat besar.
Attila Fulop
1
Pembaruan 2019 untuk PHP: "spyc" memiliki banyak masalah, sementara "sfYaml" berfungsi dengan baik.
Implementasi PHP murni, jadi Anda tidak perlu melakukan modifikasi apa pun pada server untuk instalasi. Jika kecepatan sangat mengkhawatirkan, ini mungkin bukan solusi yang ideal, tetapi jika Anda menggunakan YAML untuk konfigurasi atau penggunaan volume yang relatif rendah, ini adalah solusi yang fantastis.
Dengan adanya dokumen YAML, Spyc akan mengembalikan larik yang dapat Anda gunakan sesuka Anda.
+1 Saya hanya ingin cara yang cepat dan mudah untuk menggunakan YAML dalam skrip impor. Aplikasi saya tidak memerlukan dukungan apa pun selain impor (dan mungkin suatu hari nanti akan diekspor). Saya menemukan bahwa spyc, terdaftar sebagai "pengurai YAML lain" adalah solusi 1-klik. Saya menjatuhkan satu skrip ke folder skrip saya, memasukkannya, dan memanggil satu metode. Tidak semudah itu, dan sekarang saya akan kembali bekerja - penghalang jalan dihapus.
Erick Robertson
1
File yaml kedaluwarsa dan banyak yang salah parse (beberapa data hilang).
Ini adalah jawaban yang bagus karena parser Symfony2 YAML tidak ketinggalan jaman. sfYamlmisalnya adalah.
ferdynator
3
Jika Anda menggunakan banyak YAML dalam proyek Anda, Anda mungkin menemukan bahwa pustaka PHP murni seperti spyc atau Symfony YAML tidak cukup cepat. Setidaknya ada dua binding PHP untuk parser C YAML:
yaml - pembungkus untuk library parser LibYAML YAML 1.1
syck - pembungkus untuk library parser Syck YAML 1.0
Jika Anda perlu menguji YAML Anda dengan cepat, saya membuat: http://yaml-online-parser.appspot.com/ . Ini membantu saya menulis YAML, terutama saat baru belajar.
Jawaban:
Berikut ringkasan status YAML dalam PHP:
Implementasi PHP murni:
Pada saat penulisan ini, tanggal rilis versi terbaru untuk pustaka yang disebutkan di atas dan versi spesifikasi YAML (1.2 adalah versi terbaru) yang mereka dukung adalah:
sumber
Spyc: https://github.com/mustangostang/spyc
Implementasi PHP murni, jadi Anda tidak perlu melakukan modifikasi apa pun pada server untuk instalasi. Jika kecepatan sangat mengkhawatirkan, ini mungkin bukan solusi yang ideal, tetapi jika Anda menggunakan YAML untuk konfigurasi atau penggunaan volume yang relatif rendah, ini adalah solusi yang fantastis.
Dengan adanya dokumen YAML, Spyc akan mengembalikan larik yang dapat Anda gunakan sesuka Anda.
Diberikan sebuah array, Spyc akan mengembalikan string yang berisi dokumen YAML yang dibuat dari data Anda.
sumber
The framework symfony membuat penggunaan yang sangat berat YAML, ini posting blog oleh Grégoire Hubert menunjukkan menggunakan perpustakaan YAML mereka dalam proyek non-symfony.
sumber
Symfony2 memiliki komponen YAML yang paling mendukung besar spesifikasi YAML 1.2
https://github.com/symfony/Yaml
sumber
sfYaml
misalnya adalah.Jika Anda menggunakan banyak YAML dalam proyek Anda, Anda mungkin menemukan bahwa pustaka PHP murni seperti spyc atau Symfony YAML tidak cukup cepat. Setidaknya ada dua binding PHP untuk parser C YAML:
sumber
Saya akan menyarankan proses yang diikuti dalam artikel ini http://devzone.zend.com/article/2585-using-yaml-with-php-and-pecl
sumber
Coba sfYaml , itu yang terbaik yang saya tahu.
Symfony dan Doctrine ORM menggunakan yang ini.
Untuk mendapatkannya, Anda dapat Download Doctrine 1.2 dan ekstrak
sfYaml
darivendor
direktori.Beri tahu kami jika itu sesuai dengan kebutuhan Anda.
sumber
Jika Anda perlu menguji YAML Anda dengan cepat, saya membuat: http://yaml-online-parser.appspot.com/ . Ini membantu saya menulis YAML, terutama saat baru belajar.
sumber