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

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

sample_yaml.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 880 bytes

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
B - เข้าเมนูหน้ารวมรายการใน admin ไม่ได้
โดย thatsawan ศ 29 พฤษภาคม 2020 5:58 pm บอร์ด Odoojob.com - Tester
0
1
ศ 29 พฤษภาคม 2020 5:58 pm โดย thatsawan
B - ยังขาดหน้าผลการค้นหา จาก search.php
โดย mindphp ศ 29 พฤษภาคม 2020 6:11 am บอร์ด FDD (Main)
0
1
ศ 29 พฤษภาคม 2020 6:11 am โดย mindphp
B - กล่องค้นหาจากหน้า index ใช้งานไม่ได้ กดแล้วไม่ไปหน้าค้นหา
โดย mindphp ศ 29 พฤษภาคม 2020 5:39 am บอร์ด FDD (Main)
1
1
ศ 29 พฤษภาคม 2020 5:53 am โดย mindphp
B - ไม่ใช่แค่โชว์ icon facebook มันต้องทำลิงค์เพื่อให้คลิกไป
โดย mindphp ศ 29 พฤษภาคม 2020 4:39 am บอร์ด FDD (Main)
1
2
ศ 29 พฤษภาคม 2020 4:51 am โดย mindphp
อัพเดท phpbb 3.3 เเล้ว extenstion ใช้งานไม่ได้
โดย thatsawan พฤ 28 พฤษภาคม 2020 10:08 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
72
พฤ 28 พฤษภาคม 2020 10:10 pm โดย thatsawan
วิธีการสร้าง css ที่ใช้งานเฉพาะในบราวเซอร์ safari เท่านั้น
โดย Ittichai_chupol พฤ 28 พฤษภาคม 2020 6:06 pm บอร์ด CSS Knowledge
0
71
พฤ 28 พฤษภาคม 2020 6:06 pm โดย Ittichai_chupol
R - Set Demo เป็น subdomain ของ ตัวนี้
โดย mindphp พฤ 28 พฤษภาคม 2020 6:17 am บอร์ด มารียา ซีฟู้ดส์ - Developer
0
8
พฤ 28 พฤษภาคม 2020 6:17 am โดย mindphp
อยากทราบวิธีการกำหนด ค่า css ให้กับ button โดยกำหนดเฉพาะแต่ละบราวเซอร์
โดย Ittichai_chupol พ 27 พฤษภาคม 2020 8:39 pm บอร์ด HTML CSS
1
28
พ 27 พฤษภาคม 2020 9:15 pm โดย mindphp
อัพเดท Changelog flask framework ของภาษา Python
โดย jirawoot พ 27 พฤษภาคม 2020 12:19 pm บอร์ด Python Knowledge
0
83
พ 27 พฤษภาคม 2020 12:19 pm โดย jirawoot
งานประจำวันที่ 27 พฤษภาคม 2563
โดย yositacha26 พ 27 พฤษภาคม 2020 12:13 pm บอร์ด MP011 - โยษิตา จันทะวงษ์
1
25
พ 27 พฤษภาคม 2020 12:15 pm โดย yositacha26
อยากทราบว่า วิธีการกำหนดการตั้งค่า ภาษาไทย ใน Netbeans
โดย Ittichai_chupol พ 27 พฤษภาคม 2020 10:13 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
76
พ 27 พฤษภาคม 2020 10:13 am โดย Ittichai_chupol
B - บริษัท approve ประวัติที่ส่งมาสมัครเเล้ว เเต่ยังแสดงสถานะเดิมอยู่
โดย thatsawan อ 26 พฤษภาคม 2020 6:27 pm บอร์ด Odoojob.com - Tester
0
4
อ 26 พฤษภาคม 2020 6:27 pm โดย thatsawan
อยากทราบวิธีการแก้ไข ภาษาไทยกลายอักษรแปลกๆ
โดย Ittichai_chupol จ 25 พฤษภาคม 2020 4:35 pm บอร์ด Programming - PHP
1
99
จ 25 พฤษภาคม 2020 5:43 pm โดย thatsawan
อยากทราบวิธีการ แบบคอลัมเป็น 3 คอลีม โดยใช้ tag <dl>
โดย Ittichai_chupol จ 25 พฤษภาคม 2020 11:56 am บอร์ด HTML CSS
1
104
จ 25 พฤษภาคม 2020 2:42 pm โดย thatsawan
บันทึกประชุม มารียา ซีฟู้ดส์
โดย thatsawan จ 25 พฤษภาคม 2020 11:40 am บอร์ด มารียา ซีฟู้ดส์ (Main)
2
12
ศ 29 พฤษภาคม 2020 9:32 am โดย tsukasaz
10 สุดยอดสตรีทฟู้ดในแอฟริกาตะวันตก
โดย Anonymous อ 24 พฤษภาคม 2020 9:58 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
118
จ 25 พฤษภาคม 2020 8:03 pm โดย ขุนพล ตั้นตระกูล
ข้อมูลสำหรับทำระบบ
โดย mindphp อ 24 พฤษภาคม 2020 4:07 am บอร์ด มารียา ซีฟู้ดส์ (Main)
0
10
อ 24 พฤษภาคม 2020 4:07 am โดย mindphp
อัพเดดความคืบหน้า / Progress - มารียา ซีฟู้ดส์
โดย mindphp อ 24 พฤษภาคม 2020 4:07 am บอร์ด มารียา ซีฟู้ดส์ (Main)
3
22
ศ 29 พฤษภาคม 2020 2:25 pm โดย thatsawan
อัพเดด Template เว็บไซต์ FDD (V2)
โดย mindphp อ 24 พฤษภาคม 2020 3:51 am บอร์ด FDD (Main)
0
1
อ 24 พฤษภาคม 2020 3:51 am โดย mindphp
R - ปรับกราฟฟิก ของเว็บ FDD
โดย mindphp อ 24 พฤษภาคม 2020 3:50 am บอร์ด FDD (Main)
0
2
อ 24 พฤษภาคม 2020 3:50 am โดย mindphp