ให้เรตสมาชิก: 2 / 5

ดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

จากบทที่แล้ว ได้ ทำความรู้จัก YAML ไฟล์ นามสกุล .yml กับ Symfony Framework บทนี้ เรามาทำความรู้จัก data type ของ yaml และการเริ่มใช้งาน YAML กับ PHP กันครับ

YAML ยังไม่ได้เป็น Module มาตรฐานที่จะเรียกใช้งานฟังก์ชั่นต่างๆ จัดการกับ YAML ได้ เหมือน XML, หรือ JSON การใช้งาน YAML ต้องมีการติดตั้ง Module เสริม หรือ ใช้ Library อื่นเข้ามาช่วย เพื่อ แปลงรูปแบบเป็น ข้อมูลที่นำไปใช้ใน PHP ได้ เรียกตัวแปลงนั้นว่า "parser" โดย parser ที่ ได้รับความนิยมปัจจุบัน

พอสรุป Parsers ได้ดังนี้

  • PECL extension ต้องติดตั้งโปรแกรมเสริมลงไปในเครื่องเรา
  • Symfony 2 YAML Component ใช้กับ php 5.3.2+
  • SPYC ใช้ได้กับ php 5+ เป็น library แยก

วิธีติดตั้ง Parsers และใช้งานแต่ละแบบ ดูได้จาก lib แต่ละตัวนะครับ ต่อไปเรามาทำความรู้จักกับ Data Type กันต่อ Data Type ของ YAML จะคล้ายกับ php มาก ซึ่งทำให้การแปลงกลับไปมาทำได้ง่าย เขียนจาก php แปลเป็น YAML หรือ YAML อ่านแล้วเข้าใจง่ายไม่ต้องตีความ

ตัวอย่าง YAML:: sample_yaml.yml

#0 ข้อความ
- ยินดีต้อนรับสู่ Mindphp.com

#1 ข้อความมีเครื่องหมา ''
- ข้อความมีเครื่องหมาย single  ด้วย  ยินดีต้อนรับสู่ 'Mindphp.com'

#2 กำหนดข้อความโดยใช้ เครื่องหมาย ' ครอบทั้งหมด
- 'ข้อความ' ใช้เครื่องหมาย single quoted  ครอบก็ได้
#3 ข้อความหลาย บรรทัด
- |
    ข้อความหายบรรทัด
    ขึ้นบรรทัดที่สอง
    บรรทัดที่ 3
#4 ข้อความหลายบรรทัดตัดกลับมาเป็น บรรทัดเดียว
>
  ข้อความหายบรรทัด
    ขึ้นบรรทัดที่สอง
    บรรทัดที่ 3
# ตัวเลข
#5 integer
- 24
#6 octal
- 014
#7 hexadecimal
- 0xC
#8 float
- 14.4
#9 exponential number
- 1.4e+34
#10 infinity
- .inf

#11-12 ค่า Nulls เขียนได้ สองแบบคือ null หรือ ~ ก็ได้
- null
- ~

#13 รูปแบบวันที่ ใช้   ISO-8601
- 2014-12-14
#14 รูปแบบวันแบบระบุเวลา
- 2001-12-14t21:59:43.10-05:00

# ประเภท Collections (แปลงเป็น array ใน php)
#15 รูปแบบ array แบบ auto index (key)
-
    - PHP
    - Perl
    - Python
#16 รูปแบบ array แบบกำหนด key เอง
-
    PHP: 5.2
    MySQL: 5.1
    Apache: 2.2.20

#17 รูปแบบ array หมายมิติ (ตัวอย่าง array 2 มิติ)
-
    "mindphp1":
        PHP:    5.0
        Python: 2.4
    "mindphp2":
        PHP:    5.2
        Python: 1.3

#18 รูปแบบ array โดยใช้ square brackets []
- [PHP, Python, Mindphp.com]

#19 รูปแบบ array หลาย โดยใช้ เครื่องหมาย { }
- {PHP: 5.2, MySQL: 5.1, Apache: 2.2.20, Python: 2.7, Mindphp: 'mindphp.com'}

#20 รูปแบบ array หลาย
- {    'Chapter1': ['Introduction', 'Event Types'],
    'Chapter2': ['Introduction', 'Helpers'],
  }

ผลจาก การแปลง yaml เป็น PHP

Array
(
    [0] => ยินดีต้อนรับสู่ Mindphp.com
    [1] => ข้อความมีเครื่องหมาย single  ด้วย  ยินดีต้อนรับสู่ 'Mindphp.com'
    [2] => 'ข้อความ' ใช้เครื่องหมาย single quoted  ครอบก็ได้
    [3] => ข้อความหายบรรทัด
ขึ้นบรรทัดที่สอง
บรรทัดที่ 3
    [4] => ข้อความหายบรรทัด ึ้นบรรทัดที่สอง รรทัดที่ 3
    [5] => 24
    [6] => 14
    [7] => 12
    [8] => 14.4
    [9] => 1.4E+34
    [10] => .inf
    [11] => 
    [12] => 
    [13] => 2014-12-14
    [14] => 2001-12-14t21:59:43.10-05:00
    [15] => Array
        (
            [0] => PHP
            [1] => Perl
            [2] => Python
        )

    [16] => Array
        (
            [PHP] => 5.2
            [MySQL] => 5.1
            [Apache] => 2.2.20
        )

    [17] => Array
        (
            [mindphp1] => Array
                (
                    [PHP] => 5.0
                    [Python] => 2.4
                )

            [mindphp2] => Array
                (
                    [PHP] => 5.2
                    [Python] => 1.3
                )

        )

    [18] => Array
        (
            [0] => PHP
            [1] => Python
            [2] => Mindphp.com
        )

    [19] => Array
        (
            [PHP] => 5.2
            [MySQL] => 5.1
            [Apache] => 2.2.20
            [Python] => 2.7
            [Mindphp] => mindphp.com
        )

    [20] => Array
        (
            ['Chapter1'] => Array
                (
                    [0] => Introduction
                    [1] => Event Types
                )

            ['Chapter2'] => Array
                (
                    [0] => Introduction
                    [1] => Helpers
                )

        )

)

วิธีอ่านดู ตัวเลขหลังเครื่องหมาย # ว่ารูปแบบแต่ละแบบแปลงแล้วเป็น PHP ได้ Data type อะไรออกมา

หัวเรื่อง
ไฟล์ YAML สำหรับศึกษา DataType
หมวดหมู่
Symfony Framework, Symfony Framework
ฮิต
17578
ผู้สร้างเอกสาร
Administrator
วันที่สร้างเอกสาร
2014-07-12 16:31:16
รายละเอียด

ไฟล์ ข้อมูลจะเป็น text ธรรมดา ต้อง ใช้ parsers เข้ามาช่วยอ่านและแปลงเป็นค่าที่ต้องนำไปใช้ได้

sample_yaml.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 880 bytes

ผู้อัพโหลดไฟล์ Administrator

วันที่อัพโหลด 2014-07-12 09:30:36


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Q - อยากทราบวิธีการดึงค่า api อัตราการแลกเปลี่ยนสกุลเงิน มาใช้อย่างไรครับ
โดย birdkritsna พฤ 19 ก.ย. 2019 10:50 am บอร์ด Programming - PHP
18
276
ส 21 ก.ย. 2019 4:35 pm โดย birdkritsna
อยากทราบวฺิธีการทำปุ่มเพิ่มตัวเลย ครับ
โดย jamepiyawat พฤ 19 ก.ย. 2019 10:39 am บอร์ด Programming - PHP
6
114
พฤ 19 ก.ย. 2019 6:44 pm โดย jamepiyawat
ถ้าจะให้้มีคนกดซับเพิ่มขึ่นต้องทำไง
โดย totzazx789 พ 18 ก.ย. 2019 10:40 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
52
พ 18 ก.ย. 2019 10:40 pm โดย totzazx789
สอบถามเกี่ยวกับ list ใน Tkinter ค่ะ
โดย mashato พ 18 ก.ย. 2019 8:45 pm บอร์ด Programming - C/C++ & java & Python
0
72
พ 18 ก.ย. 2019 8:45 pm โดย mashato
ทำไมต้องอัพเกรด และ วิธีอัพเกรด เวอร์ชั่น ใน Ubuntu
โดย jirawoot พ 18 ก.ย. 2019 7:02 pm บอร์ด Linux - Web Server
0
78
พ 18 ก.ย. 2019 7:02 pm โดย jirawoot
Adobe Premiere Pro เปิดตัวฟีเจอร์ปรับขนาดเฟรมวิดีโออัตโนมัติด้วย AI รองรับโซเชียลแอป
โดย birdkritsna พ 18 ก.ย. 2019 6:05 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
93
จ 23 ก.ย. 2019 9:32 am โดย LEG
ทำความรู้จัก Tape Backup
โดย aninthana พ 18 ก.ย. 2019 5:57 pm บอร์ด Web Hosting Review - Free Host Share Host VPS
0
57
พ 18 ก.ย. 2019 5:57 pm โดย aninthana
สร้างแบบสอบถามออนไลน์ ด้วย Excel Survey บน OneDrive
โดย birdkritsna อ 17 ก.ย. 2019 6:31 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
109
อ 17 ก.ย. 2019 6:31 pm โดย birdkritsna
ทำไมจึงต้องมี Data Mining (เหมืองข้อมูล) ?
โดย birdkritsna อ 17 ก.ย. 2019 6:04 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
94
อ 17 ก.ย. 2019 6:04 pm โดย birdkritsna
ทำความรู้จักกับ Big Data คืออะไร
โดย birdkritsna อ 17 ก.ย. 2019 5:36 pm บอร์ด SQL Knowledge
1
129
อ 17 ก.ย. 2019 5:52 pm โดย mindphp
วิธีการใช้งานฟังชั่น serialize() กับ unserialize() ใน phpbb
โดย Ittichai_chupol อ 17 ก.ย. 2019 5:18 pm บอร์ด PHP Knowledge
0
72
อ 17 ก.ย. 2019 5:18 pm โดย Ittichai_chupol
รู้จักกับคลังข้อมูล(Data Warehouse) คืออะไร มีประโยชน์อะไรบ้าง
โดย birdkritsna อ 17 ก.ย. 2019 5:11 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
86
อ 17 ก.ย. 2019 5:11 pm โดย birdkritsna
MS Exchange ไมโครซอฟท์ต่ออายุซัพพอร์ต 2010 ให้อีก 9 เดือน ถึง ตุลาคม 2020
โดย chatee supasand อ 17 ก.ย. 2019 5:09 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
70
อ 17 ก.ย. 2019 5:09 pm โดย chatee supasand
สิ่งที่ต้องทำ ก่อนโทรศัพท์หายหรือโดนขโมย
โดย birdkritsna อ 17 ก.ย. 2019 3:23 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
63
อ 17 ก.ย. 2019 3:23 pm โดย birdkritsna
วิธีขับขี่ช่วงฝนตก ป้องกันอุบัติเหตุทางถนน
โดย birdkritsna อ 17 ก.ย. 2019 2:56 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
74
จ 23 ก.ย. 2019 9:36 am โดย LEG
สร้าง Menu Item ที่จะให้เมนูแสดงเฉพาะภาษาอังกฤษแล้ว Error ครับ
โดย jamepiyawat อ 17 ก.ย. 2019 2:52 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
5
149
อ 17 ก.ย. 2019 5:08 pm โดย jamepiyawat
ปัญหาไม่สามารถแสดงผลได้ทางหน้าจอ ขึ้น Object not found!
โดย birdkritsna อ 17 ก.ย. 2019 12:11 pm บอร์ด Programming - PHP
4
135
อ 17 ก.ย. 2019 3:56 pm โดย birdkritsna
ทำอย่างไรให้ใน loop แสดงสินค้าไม่ซ้ำกัน
โดย Patipat อ 17 ก.ย. 2019 11:19 am บอร์ด Joomla Development
1
75
พฤ 19 ก.ย. 2019 10:51 am โดย tsukasaz
รู้จักกับระบบปฎิบัติการ Harmony OS ที่ไม่ได้มีไว้แค่มือถือเท่านั้น
โดย birdkritsna อ 17 ก.ย. 2019 11:06 am บอร์ด Mobile Application Developing- Android, iOS
0
77
อ 17 ก.ย. 2019 11:06 am โดย birdkritsna
สร้างบอร์ดขึ้นมาใหม่แล้วสมาชิกใหม่มองไม่
โดย Jumpapong จ 16 ก.ย. 2019 10:20 pm บอร์ด Programming - PHP
3
110
อ 17 ก.ย. 2019 4:17 pm โดย mindphp