ให้เรตสมาชิก: 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
ฮิต
17574
ผู้สร้างเอกสาร
Administrator
วันที่สร้างเอกสาร
2014-07-12 16:31:16
รายละเอียด

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

sample_yaml.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 880 bytes

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Incomterms คืออะไร
โดย aninthana จ 16 ก.ย. 2019 6:41 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
51
จ 16 ก.ย. 2019 6:41 pm โดย aninthana
ติดตั้ง SSL ให้เว็บไซต์ ดีอย่างไร
โดย aninthana จ 16 ก.ย. 2019 6:36 pm บอร์ด Web Hosting Review - Free Host Share Host VPS
1
91
อ 17 ก.ย. 2019 2:14 pm โดย Pannarai2015
ข่าวแว่วมาตามลุ่มแม่น้ำ Surface Laptop 3 จะออกรุ่นหน้าจอ 15 เพิ่มจากรุ่นเดิมที่ 13.5
โดย chatee supasand จ 16 ก.ย. 2019 6:14 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
51
จ 16 ก.ย. 2019 6:14 pm โดย chatee supasand
การขอ STATEMENT ธนาคารออมสิน
โดย EyePornnipa จ 16 ก.ย. 2019 4:50 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
1
61
จ 16 ก.ย. 2019 5:11 pm โดย thatsawan
การขอ STATEMENT ธนาคารกรุงไทย
โดย EyePornnipa จ 16 ก.ย. 2019 4:50 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
2
100
อ 17 ก.ย. 2019 2:27 pm โดย EyePornnipa
การขอ STATEMENT ธนาคารธนชาต Thanachart Bank
โดย EyePornnipa จ 16 ก.ย. 2019 4:20 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
0
52
จ 16 ก.ย. 2019 4:20 pm โดย EyePornnipa
วิธีการเดินทางจากบ้าน บุรีรัมย์ - กรุงเทพฯ
โดย birdkritsna จ 16 ก.ย. 2019 4:18 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
63
จ 16 ก.ย. 2019 4:18 pm โดย birdkritsna
สร้าง tab ยังไงให้สามารถใช้งานได้ครับ
โดย jamepiyawat จ 16 ก.ย. 2019 3:33 pm บอร์ด HTML CSS
2
105
จ 16 ก.ย. 2019 4:04 pm โดย jamepiyawat
อยากให้ไฟล์แสดงบนหน้าจอของ Tkinter ค่ะ
โดย mashato จ 16 ก.ย. 2019 5:01 am บอร์ด Programming - PHP
1
65
จ 16 ก.ย. 2019 5:51 pm โดย mindphp
อยากให้ไฟล์แสดงบนหน้าจอของTkinterค่ะ
โดย Anonymous จ 16 ก.ย. 2019 4:51 am บอร์ด Programming - PHP
0
52
จ 16 ก.ย. 2019 4:51 am โดย บุคคลทั่วไป
ประกาศปิดหมวด ยกเลิกอัพเดดเนื้อหา และ งดตอบคำถามต่างๆ เกี่ยวกับ Magento
โดย mindphp ส 14 ก.ย. 2019 5:31 pm บอร์ด Magento user Guide Knowledge
0
99
ส 14 ก.ย. 2019 5:31 pm โดย mindphp
แนะนำ และสอนการใช้งาน Google Chrome Remote Desktop โปรแกรมรีโหมทหน้าจอ
โดย zend_framework ส 14 ก.ย. 2019 5:28 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
78
ส 14 ก.ย. 2019 5:28 pm โดย zend_framework
อยากทราบวิธีสร้างรูปภาพในไลน์กลุ่มแล้ว กดที่รูปเด้งเข้าไลน์@ของเราเอง
โดย Anonymous ส 14 ก.ย. 2019 4:38 pm บอร์ด Mobile Programming - Android, iOS, Window Phone
1
138
ส 14 ก.ย. 2019 4:52 pm โดย mindphp
อยากทราบวิธีที่จะให้ อาเรย์วนลูปอย่างไรครับ
โดย Patipat ส 14 ก.ย. 2019 3:46 pm บอร์ด Joomla Development
3
91
ส 14 ก.ย. 2019 5:25 pm โดย mindphp
สร้างแถบเมนู
โดย alonglot ส 14 ก.ย. 2019 12:35 pm บอร์ด Joomla Development
1
83
จ 16 ก.ย. 2019 9:00 am โดย tsukasaz
google photos เพิ่มฟีเจอร์ Memories นำภาพถ่ายหรือวิดีโอเก่า ๆ ของเรามาแสดง
โดย jamepiyawat ศ 13 ก.ย. 2019 6:08 pm บอร์ด Share Knowledge
1
81
จ 16 ก.ย. 2019 12:05 pm โดย markjohn
Microsoft เปลี่ยนชื่อ Microsoft To-Do เป็น To Do หวังให้ใช้งานแทน Wunderlis
โดย chatee supasand ศ 13 ก.ย. 2019 6:05 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
62
ศ 13 ก.ย. 2019 6:05 pm โดย chatee supasand
วิธีการ Export ข้อมูลมาเป็นไฟล์ Excel โดย phpbb
โดย Ittichai_chupol ศ 13 ก.ย. 2019 4:24 pm บอร์ด PHP Knowledge
1
91
จ 30 ก.ย. 2019 1:16 pm โดย thatsawan
อยากทราบวิธีการแก้ไข Undefined index ใน phpbb
โดย Ittichai_chupol ศ 13 ก.ย. 2019 3:26 pm บอร์ด Programming - PHP
1
108
ศ 13 ก.ย. 2019 3:36 pm โดย บุคคลทั่วไป
อยากทราบวิธีทำให้ path way มีลูกศรชี ครับ
โดย jamepiyawat ศ 13 ก.ย. 2019 2:53 pm บอร์ด Joomla Development
1
77
ศ 13 ก.ย. 2019 2:55 pm โดย tsukasaz