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

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

sample_yaml.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 880 bytes

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
BLACKPINK โปสเตอร์ทีเซอร์ใหม่? (ดนตรี)
โดย nai_cyp อ 11 ส.ค. 2020 5:11 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
112
จ 24 ส.ค. 2020 10:54 am โดย Sirayu
Liam Gallagher ในช่วง COVID-19 ระบาด (ดนตรี)
โดย nai_cyp อ 11 ส.ค. 2020 5:10 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
117
จ 24 ส.ค. 2020 10:55 am โดย Sirayu
Khalid ในช่วง COVID-19 ระบาด (ดนตรี)
โดย nai_cyp อ 11 ส.ค. 2020 5:07 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
113
จ 24 ส.ค. 2020 10:56 am โดย Sirayu
Green Day ในช่วง COVID-19 ระบาด (ดนตรี)
โดย nai_cyp อ 11 ส.ค. 2020 5:01 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
126
จ 24 ส.ค. 2020 10:57 am โดย Sirayu
การคำนวณเงินหากลูกค้าเป็นสมาชิกโดยใช้ If/else ในภาษา Java
โดย nai_cyp จ 10 ส.ค. 2020 7:10 pm บอร์ด Share Knowledge
0
135
จ 10 ส.ค. 2020 7:10 pm โดย nai_cyp
การหาค่า BMI ในภาษา Java
โดย nai_cyp จ 10 ส.ค. 2020 6:45 pm บอร์ด Share Knowledge
0
120
จ 10 ส.ค. 2020 6:45 pm โดย nai_cyp
ขั้นตอนการใช้ SMS Gateway
โดย natthanit.r2538 พ 08 ก.ค. 2020 11:42 am บอร์ด Programming - PHP
1
124
พ 08 ก.ค. 2020 7:10 pm โดย natthanit.r2538
การรับค่า Input ในภาษา Java
โดย nai_cyp จ 10 ส.ค. 2020 5:30 pm บอร์ด Share Knowledge
0
137
จ 10 ส.ค. 2020 5:30 pm โดย nai_cyp
สถานที่ท่องเที่ยวในกรุงเทพ
โดย nai_cyp จ 10 ส.ค. 2020 3:16 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
130
อ 11 ส.ค. 2020 1:59 pm โดย Sirayu
ภาพอาการแบตบวม ของ Asus ZenBook UX430UQ
โดย mindphp อ 09 ส.ค. 2020 11:40 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
155
อ 11 ส.ค. 2020 12:09 pm โดย mindphp
phpbb ไม่ RUN tasks โปรแกรม อัตโนมัติให้
โดย thatsawan ส 08 ส.ค. 2020 8:47 pm บอร์ด Programming - PHP
12
257
พ 12 ส.ค. 2020 2:40 am โดย mindphp
ความหวังสร้างกำลังใจ ทางออกของคนที่ตรวจพบเจอโรคมะเร็ง
โดย medalezga ศ 07 ส.ค. 2020 6:33 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
123
อ 11 ส.ค. 2020 2:02 pm โดย Sirayu
How do I access my Gmail account through IMAP settings?
โดย Anonymous ศ 07 ส.ค. 2020 5:07 pm บอร์ด Programming - PHP
0
109
ศ 07 ส.ค. 2020 5:07 pm โดย บุคคลทั่วไป
การเขียน Python เชื่อมต่อฐานข้อมูล MSSQL (SQL Server)
โดย jirawoot พฤ 06 ส.ค. 2020 5:42 pm บอร์ด Python Knowledge
0
161
พฤ 06 ส.ค. 2020 5:42 pm โดย jirawoot
ขอสอบถามค่ะ คือกราฟไม่แสดงค่า เมื่อลองรันขึ้น sever จริง แก้ไขยังไงคะ
โดย 2kkkkk พฤ 06 ส.ค. 2020 2:22 am บอร์ด Programming - PHP
1
150
พฤ 06 ส.ค. 2020 2:38 am โดย mindphp
มี Joomla Extension ตัวไหน ทำ Youtube แกลอลี่ ได้บ้าง
โดย Anonymous อ 04 ส.ค. 2020 8:23 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
148
อ 04 ส.ค. 2020 8:27 pm โดย mindphp
How To Write HTML To Make SEO Freindly Website?
โดย Ridahashmi อ 04 ส.ค. 2020 8:04 pm บอร์ด HTML CSS
0
295
อ 04 ส.ค. 2020 8:04 pm โดย Ridahashmi
ภ.พ.36 คืออะไร
โดย natthanit.r2538 อ 04 ส.ค. 2020 5:54 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
1
384
อ 01 ก.ย. 2020 8:12 am โดย prmindphp
อุตสาหกรรมเกษตรน่านแฟร์ 2020
โดย krittaphon อ 04 ส.ค. 2020 10:23 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
135
จ 24 ส.ค. 2020 10:57 am โดย Sirayu
R - AI แยกชาย/หญิง
โดย mindphp ศ 31 ก.ค. 2020 8:08 pm บอร์ด FDD (Main)
0
1
ศ 31 ก.ค. 2020 8:08 pm โดย mindphp