Rumah >pembangunan bahagian belakang >tutorial php >PHP Master | Menggunakan YAML dalam projek PHP anda
Peranti ujian, fail konfigurasi dan fail log semua perlu mengambil kira bacaan manusia dan mesin. YAML (YAML bukan bahasa markup) adalah format siri data yang lebih mudah daripada XML, dan popular di kalangan pemaju perisian untuk keterbacaannya. Fail YAML hanya mengandungi fail data teks yang ditulis mengikut peraturan sintaks YAML, biasanya dengan lanjutan .yml. Artikel ini akan memperkenalkan asas -asas YAML dan bagaimana untuk mengintegrasikan parser PHP YAML dalam projek PHP anda.
Mata utama:
Penjelasan terperinci mengenai YAML Tatabahasa
YAML menyokong ciri -ciri canggih seperti rujukan dan jenis data tersuai, tetapi sebagai pemaju PHP, anda akan memberi perhatian kepada bagaimana YAML mewakili array yang disenaraikan (urutan dalam istilah YAML) dan array bersekutu (pemetaan). Berikut adalah perwakilan tatasusunan yang disenaraikan di Yaml:
<code class="language-yaml">- 2 - "William O'Neil" - false</code>Setiap elemen array muncul selepas tanda hubung dan ruang. Sintaks untuk mewakili nilai adalah serupa dengan PHP (rentetan rujukan, dan lain -lain). Kandungan di atas bersamaan dengan PHP berikut:
<code class="language-php"><?php array(2, "William O'Neil", false);</code>Biasanya, setiap elemen muncul dalam baris berasingan di YAML, tetapi array penghitungan juga boleh diwakili dalam garis menggunakan kurungan persegi:
<code class="language-yaml">[ 2, "William O'Neil", false ]</code>Kod berikut menunjukkan cara mewakili array bersekutu di YAML:
<code class="language-yaml">id: 2 name: "William O'Neil" isActive: false</code>mula mengisytiharkan kunci elemen, diikuti oleh kolon dan satu atau lebih ruang, dan kemudian mengisytiharkan nilai. Ia cukup untuk mempunyai hanya satu ruang selepas kolon, tetapi untuk kebolehbacaan yang lebih besar anda boleh menggunakan lebih banyak ruang. Arahan php setara dari yaml di atas adalah:
<code class="language-php"><?php array("id" => 2, "name" => "William O'Neil", "isActive" => false);</code>Sama dengan tatasusunan yang disebutkan, anda boleh menggunakan pendakap untuk mewakili susunan bersekutu berturut -turut:
<code class="language-yaml">{ id: 2, name: "William O'Neil”, isActive: false }</code>Gunakan satu atau lebih ruang untuk lekukan, anda boleh mewakili array multidimensi seperti ini:
<code class="language-yaml">- 2 - "William O'Neil" - false</code>
Perhatikan bahawa walaupun array lapisan kedua adalah array yang disenaraikan, saya menggunakan sintaks peta (kolon) dan bukannya urutan (tanda hubung) untuk kejelasan. Blok YAML di atas bersamaan dengan PHP berikut:
<code class="language-php"><?php array(2, "William O'Neil", false);</code>
YAML juga membolehkan mewakili koleksi unsur data berganda dalam dokumen yang sama tanpa memerlukan nod akar. Contoh berikut ialah kandungan artikel.yml, yang menunjukkan beberapa tatasusunan multidimensi dalam fail yang sama.
<code class="language-yaml">[ 2, "William O'Neil", false ]</code>
Walaupun kebanyakan sintaks YAML adalah intuitif dan mudah diingat, terdapat peraturan penting yang memerlukan perhatian. Indentasi mesti menggunakan satu atau lebih ruang; Anda boleh mengkonfigurasi IDE untuk memasukkan ruang dan bukan tab apabila kekunci TAB ditekan, konfigurasi umum untuk pemaju perisian untuk memastikan bahawa kod tersebut diindentifikasi dan dipaparkan dengan betul apabila dilihat di editor lain. Anda boleh mempelajari ciri -ciri yang lebih kompleks dan sintaks yang disokong oleh YAML dengan membaca dokumentasi rasmi, rujukan Symfony, atau Wikipedia.
(kandungan berikut adalah serupa dengan teks asal, tetapi pelarasan ayat dan penggantian perkataan telah dibuat untuk memastikan makna asal tidak berubah)
yaml bukan pengganti XML
Jika anda mencari YAML menggunakan enjin carian, anda pasti akan mencari perbincangan mengenai "Yaml vs XML" dan secara semulajadi, apabila anda terlebih dahulu mengalami YAML, anda akan lebih suka menyukainya kerana lebih mudah dibaca dan ditulis. Walau bagaimanapun, YAML harus menjadi alat lain dalam kotak alat pemaju anda dan tidak semestinya pengganti untuk XML. Berikut adalah beberapa kelebihan YAML dan XML.
Kelebihan Yaml:
Kelebihan XML:
Pilih PHP YAML Parser
Parser YAML harus mempunyai dua fungsi: beberapa jenis fungsi pemuatan yang menukarkan YAML ke array; Pada masa ini, parser YAML PHP boleh digunakan sebagai lanjutan PECL dan tidak dibundel dengan PHP. Sebagai alternatif, terdapat parser yang ditulis dalam PHP tulen yang sedikit lebih perlahan daripada sambungan PECL. Berikut adalah beberapa parser YAML yang boleh digunakan untuk PHP:
Saya lebih suka komponen Symfony 1.4 YAML kerana ia mudah alih (ia berfungsi dengan versi Php 5.2.4) dan kematangan (Symfony 1.4 adalah kerangka PHP yang lengkap). Selepas mengekstrak komponen YAML dari Arkib Symfony, kelas YAML terletak di bawah lib/yaml. Kaedah statik beban () dan dump () boleh digunakan dalam kelas SFYAML.
(kandungan berikut adalah serupa dengan teks asal, tetapi pelarasan ayat dan penggantian perkataan telah dibuat untuk memastikan makna asal tidak berubah)
Mengintegrasikan parser php yaml ke dalam projek anda
Setiap kali anda mengintegrasikan kelas atau perpustakaan pihak ketiga ke dalam projek PHP, sebaiknya buat pembungkus dan suite ujian. Ini membolehkan anda menukar perpustakaan pihak ketiga kemudian dengan perubahan minimum kepada kod projek (kod projek hanya perlu merujuk pembungkus), dan memastikan perubahan itu tidak memecahkan sebarang fungsi (suite ujian akan memberitahu anda). Berikut adalah kes ujian (yamlParsertest.php) yang dicipta untuk kelas Wrapper saya (yamlParser.php). Anda perlu memahami phpunit untuk menjalankan dan mengekalkan kes ujian. Jika anda lebih suka, anda boleh menambah lebih banyak ujian, seperti nama fail yang salah dan sambungan fail selain .yml, serta ujian lain berdasarkan senario yang anda hadapi dalam projek anda.
(bahagian kod dalam teks asal ditinggalkan di sini, kerana penulisan semula bahagian kod memerlukan sejumlah besar ruang, dan kod yang ditulis semula mempunyai fungsi yang sama dengan teks asal, jadi ia ditinggalkan di sini )
Ringkasan
Sekarang anda telah mempelajari apa yang YAML, bagaimana untuk mewakili tatasusunan PHP di YAML, dan bagaimana untuk mengintegrasikan PHP YAML parser dalam projek anda. Dengan menghabiskan lebih banyak masa belajar sintaks yaml, anda akan dapat menguasai kuasa yang disediakannya. Anda juga boleh mempertimbangkan untuk meneroka rangka Symfony 1.4 dan 2 yang menggunakan YAML secara meluas.
(bahagian FAQ dalam teks asal ditinggalkan di sini, kerana bahagian FAQ mempunyai banyak kandungan dan kandungan yang ditulis semula mempunyai fungsi yang sama dengan teks asal, jadi ia ditinggalkan di sini)
Atas ialah kandungan terperinci PHP Master | Menggunakan YAML dalam projek PHP anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!