YAML - กระบวนการ

YAML ปฏิบัติตามขั้นตอนมาตรฐานสำหรับโฟลว์กระบวนการ โครงสร้างข้อมูลดั้งเดิมใน YAML ประกอบด้วยการนำเสนออย่างง่ายเช่นโหนด เรียกอีกอย่างว่าแทนโหนดกราฟ

ซึ่งรวมถึงการแม็ปลำดับและปริมาณสเกลาร์ซึ่งกำลังถูกทำให้เป็นอนุกรมเพื่อสร้างแผนภูมิการทำให้เป็นอนุกรม ด้วยการทำให้เป็นอนุกรมวัตถุจะถูกแปลงด้วยกระแสของไบต์

แผนผังเหตุการณ์การทำให้เป็นอนุกรมช่วยในการสร้างการนำเสนอสตรีมอักขระดังที่แสดงในแผนภาพต่อไปนี้

โพรซีเดอร์ย้อนกลับจะแยกวิเคราะห์สตรีมไบต์ในแผนผังเหตุการณ์ที่ต่อเนื่องกัน ต่อมาโหนดจะถูกแปลงเป็นกราฟโหนด ค่าเหล่านี้จะถูกแปลงในโครงสร้างข้อมูลดั้งเดิมของ YAML ในภายหลัง รูปด้านล่างอธิบายสิ่งนี้ -

ข้อมูลใน YAML ใช้สองวิธี: machine processing และ human consumption. โปรเซสเซอร์ใน YAML ถูกใช้เป็นเครื่องมือสำหรับขั้นตอนการแปลงข้อมูลระหว่างมุมมองเสริมในแผนภาพที่ให้ไว้ข้างต้น บทนี้อธิบายโครงสร้างข้อมูลที่โปรเซสเซอร์ YAML ต้องจัดเตรียมไว้ภายในแอปพลิเคชันที่กำหนด

YAML มีขั้นตอนการทำให้เป็นอนุกรมสำหรับการแสดงวัตถุข้อมูลในรูปแบบอนุกรม การประมวลผลข้อมูล YAML ประกอบด้วยสามขั้นตอน:Representation, Serialization, Presentation and parsing. ให้เราคุยรายละเอียดแต่ละเรื่อง

การเป็นตัวแทน

YAML แสดงโครงสร้างข้อมูลโดยใช้โหนดสามประเภท: sequence, mapping และ scalar.

ลำดับ

ลำดับหมายถึงจำนวนรายการที่เรียงลำดับซึ่งแมปการเชื่อมโยงที่ไม่เรียงลำดับของคู่ค่าคีย์ มันสอดคล้องกับรายการอาร์เรย์ Perl หรือ Python

โค้ดที่แสดงด้านล่างเป็นตัวอย่างของการแสดงลำดับ -

product:
   - sku         : BL394D
     quantity    : 4
     description : Football
     price       : 450.00
   - sku         : BL4438H
     quantity    : 1
     description : Super Hoop
     price       : 2392.00

การทำแผนที่

การแมปในทางกลับกันแสดงถึงโครงสร้างข้อมูลพจนานุกรมหรือตารางแฮช ตัวอย่างเช่นเดียวกันได้กล่าวไว้ด้านล่าง -

batchLimit: 1000
threadCountLimit: 2
key: value
keyMapping: <What goes here?>

สเกลาร์

สเกลาร์แสดงถึงค่ามาตรฐานของสตริงจำนวนเต็มวันที่และชนิดข้อมูลอะตอม โปรดทราบว่า YAML ยังมีโหนดที่ระบุโครงสร้างชนิดข้อมูล สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสเกลาร์โปรดดูบทที่ 6 ของบทช่วยสอนนี้

การทำให้เป็นอนุกรม

ขั้นตอนการทำให้เป็นอนุกรมเป็นสิ่งจำเป็นใน YAML ที่ช่วยลดลำดับคีย์ที่เป็นมิตรกับมนุษย์และชื่อจุดยึด ผลลัพธ์ของการทำให้เป็นอนุกรมคือต้นไม้การทำให้เป็นอนุกรม YAML สามารถส่งผ่านเพื่อสร้างชุดการเรียกเหตุการณ์ของข้อมูล YAML

ตัวอย่างสำหรับการทำให้เป็นอนุกรมได้รับด้านล่าง -

consumer:
   class: 'AppBundle\Entity\consumer'
   attributes:
      filters: ['customer.search', 'customer.order', 'customer.boolean']
   collectionOperations:
      get:
         method: 'GET'
         normalization_context:
       groups: ['customer_list']
   itemOperations:
      get:
         method: 'GET'
         normalization_context:
            groups: ['customer_get']

การนำเสนอ

ผลลัพธ์สุดท้ายของการทำให้เป็นอนุกรม YAML เรียกว่าการนำเสนอ แสดงถึงกระแสของตัวละครในลักษณะที่เป็นมิตรกับมนุษย์ โปรเซสเซอร์ YAML ประกอบด้วยรายละเอียดการนำเสนอต่างๆสำหรับการสร้างสตรีมการจัดการการเยื้องและการจัดรูปแบบเนื้อหา กระบวนการที่สมบูรณ์นี้ได้รับคำแนะนำจากความต้องการของผู้ใช้

ตัวอย่างสำหรับกระบวนการนำเสนอ YAML คือผลลัพธ์ของค่า JSON ที่สร้างขึ้น สังเกตรหัสที่ระบุด้านล่างเพื่อความเข้าใจที่ดีขึ้น -

{
   "consumer": {
      "class": "AppBundle\\Entity\\consumer",
      "attributes": {
         "filters": [
            "customer.search",
            "customer.order",
            "customer.boolean"
         ]
      },
      "collectionOperations": {
         "get": {
            "method": "GET",
            "normalization_context": {
               "groups": [
                  "customer_list"
               ]
            }
         }
      },
      "itemOperations": {
         "get": {
            "method": "GET",
            "normalization_context": {
               "groups": [
                  "customer_get"
               ]
            }
         }
      }
   }
}

การแยกวิเคราะห์

การแยกวิเคราะห์เป็นกระบวนการที่ผกผันของการนำเสนอ ประกอบด้วยสตรีมของตัวละครและสร้างชุดเหตุการณ์ จะทิ้งรายละเอียดที่แนะนำในกระบวนการนำเสนอซึ่งทำให้เกิดเหตุการณ์การทำให้เป็นอนุกรม ขั้นตอนการแยกวิเคราะห์อาจล้มเหลวเนื่องจากอินพุตที่ไม่ถูกต้อง โดยพื้นฐานแล้วเป็นขั้นตอนในการตรวจสอบว่า YAML มีรูปแบบที่ดีหรือไม่

ลองพิจารณาตัวอย่าง YAML ซึ่งระบุไว้ด้านล่าง -

---
   environment: production
   classes:
      nfs::server:
         exports:
            - /srv/share1
            - /srv/share3
   parameters:
      paramter1

ด้วยขีดกลางสามตัวแสดงถึงจุดเริ่มต้นของเอกสารที่มีแอตทริบิวต์ต่างๆที่กำหนดไว้ในภายหลัง

YAML lint เป็นตัวแยกวิเคราะห์ออนไลน์ของ YAML และช่วยในการแยกวิเคราะห์โครงสร้าง YAML เพื่อตรวจสอบว่าถูกต้องหรือไม่ ลิงก์อย่างเป็นทางการสำหรับผ้าสำลี YAML ระบุไว้ด้านล่าง:http://www.yamllint.com/

คุณสามารถดูผลลัพธ์ของการแยกวิเคราะห์ดังที่แสดงด้านล่าง -