YAML - Süreçler

YAML, Proses akışı için standart bir prosedür izler. YAML'deki yerel veri yapısı, düğümler gibi basit gösterimleri içerir. Aynı zamanda Temsil Düğüm Grafiği olarak da adlandırılır.

Bir serileştirme ağacı oluşturmak için serileştirilen eşleme, sıra ve skaler büyüklükleri içerir. Serileştirme ile nesneler bayt akışı ile dönüştürülür.

Serileştirme olay ağacı, aşağıdaki diyagramda gösterildiği gibi karakter akışlarının sunumunun oluşturulmasına yardımcı olur.

Ters prosedür bayt akışını serileştirilmiş olay ağacına ayrıştırır. Daha sonra düğümler düğüm grafiğine dönüştürülür. Bu değerler daha sonra YAML yerel veri yapısına dönüştürülür. Aşağıdaki şekil bunu açıklıyor -

YAML'deki bilgiler iki şekilde kullanılır: machine processing ve human consumption. YAML'deki işlemci, yukarıda verilen diyagramda tamamlayıcı görünümler arasında bilgi dönüştürme prosedürü için bir araç olarak kullanılır. Bu bölüm, bir YAML işlemcisinin belirli bir uygulama içinde sağlaması gereken bilgi yapılarını açıklar.

YAML, veri nesnelerini seri biçimde temsil etmek için bir serileştirme prosedürü içerir. YAML bilgilerinin işlenmesi üç aşama içerir:Representation, Serialization, Presentation and parsing. Her birini ayrıntılı olarak tartışalım.

Temsil

YAML, üç tür düğüm kullanan veri yapısını temsil eder: sequence, mapping ve scalar.

Sıra

Sıra, anahtar değer çiftinin sırasız ilişkisini eşleştiren sıralı giriş sayısını ifade eder. Perl veya Python dizi listesine karşılık gelir.

Aşağıda gösterilen kod bir dizi gösterimi örneğidir -

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

Haritalama

Öte yandan eşleme, sözlük veri yapısını veya karma tabloyu temsil eder. Aynısı için bir örnek aşağıda belirtilmiştir -

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

Skaler

Skalarlar, dizelerin, tam sayıların, tarihlerin ve atomik veri türlerinin standart değerlerini temsil eder. YAML'nin ayrıca veri tipi yapısını belirten düğümler içerdiğini unutmayın. Skalerler hakkında daha fazla bilgi için, lütfen bu eğitimin 6. bölümüne bakın.

Serileştirme

YAML'de insan dostu anahtar sırasını ve çapa adlarını kolaylaştıran serileştirme işlemi gereklidir. Serileştirmenin sonucu bir YAML serileştirme ağacıdır. YAML verilerinden bir dizi olay çağrısı üretmek için çapraz geçiş yapılabilir.

Aşağıda bir serileştirme örneği verilmiştir -

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']

Sunum

YAML serileştirmenin son çıktısına sunum adı verilir. İnsan dostu bir şekilde bir karakter akışını temsil eder. YAML işlemcisi, akış oluşturmak, girintiyi yönetmek ve içeriği biçimlendirmek için çeşitli sunum ayrıntılarını içerir. Bu eksiksiz süreç, kullanıcının tercihleri ​​tarafından yönlendirilir.

YAML sunum sürecine bir örnek, oluşturulan JSON değerinin sonucudur. Daha iyi anlamak için aşağıda verilen kodu inceleyin -

{
   "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"
               ]
            }
         }
      }
   }
}

Ayrıştırma

Ayrıştırma, ters sunum sürecidir; bir karakter akışı içerir ve bir dizi olay yaratır. Sunum sürecinde tanıtılan ve serileştirme olaylarına neden olan ayrıntıları atar. Ayrıştırma prosedürü hatalı biçimlendirilmiş girdi nedeniyle başarısız olabilir. Temelde YAML'nin iyi biçimlendirilmiş olup olmadığını kontrol etmek için bir prosedürdür.

Aşağıda bahsedilen bir YAML örneğini düşünün -

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

Üç kısa çizgiyle, daha sonra içinde tanımlanan çeşitli özniteliklere sahip belgenin başlangıcını temsil eder.

YAML lint, YAML'nin çevrimiçi ayrıştırıcısıdır ve geçerli olup olmadığını kontrol etmek için YAML yapısının ayrıştırılmasına yardımcı olur. YAML tiftiği için resmi bağlantı aşağıda belirtilmiştir:http://www.yamllint.com/

Ayrıştırmanın çıktısını aşağıda gösterildiği gibi görebilirsiniz -