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

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

sample_yaml.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 880 bytes

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
พิมพ์ข้อความเว็บบอร์ด แล้วกดไปโดยเว็บบอร์ดที่โชว์ในรูปแบบโทรศัพท์ทำยังไง
โดย Udomsak2539 จ 14 ก.ย. 2020 2:59 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
80
จ 14 ก.ย. 2020 3:05 pm โดย tsukasaz
keyword
โดย Udomsak2539 จ 14 ก.ย. 2020 11:27 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
97
อ 15 ก.ย. 2020 10:07 am โดย Udomsak2539
ลบคอมเม้นของเว็บบอร์ด PHP ยังไง
โดย Udomsak2539 จ 14 ก.ย. 2020 10:58 am บอร์ด MindPHP News & Feedback
2
112
จ 14 ก.ย. 2020 11:07 am โดย Udomsak2539
วิธีใช้คีย์ลัดเปลี่ยนภาษาใน Ubantu กดตรงไหนเหรอคะ
โดย fhakun จ 14 ก.ย. 2020 10:56 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
5
191
พ 16 ก.ย. 2020 5:09 pm โดย chatee supasand
การใส่ใจลูกน้อยวัยทารกที่มีอาการผื่นแดงแพ้ตามลำตัว
โดย medalezga ศ 11 ก.ย. 2020 4:38 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
136
ศ 11 ก.ย. 2020 4:38 pm โดย medalezga
วิธี Setup SSL ให้กับ GitLab เข้าใช้งาน https ได้ง่ายไม่ต้องแก้ไขโค้ดได้แล้วด้วย GitLab 12
โดย mindphp อ 08 ก.ย. 2020 8:29 pm บอร์ด Linux - Web Server
1
204
อ 08 ก.ย. 2020 8:42 pm โดย mindphp
สอบถามเรื่อง Output ข้อมูล Keywords ที่ได้จาก Youtube ครับ
โดย nai_cyp ส 05 ก.ย. 2020 6:35 pm บอร์ด Programming - C/C++ & java & Python
1
188
ส 05 ก.ย. 2020 7:53 pm โดย mindphp
geckodriver คืออะไรครับ ?
โดย nai_cyp พฤ 03 ก.ย. 2020 10:49 pm บอร์ด Programming - C/C++ & java & Python
2
306
ส 05 ก.ย. 2020 11:33 pm โดย nai_cyp
วิธีเลือกงาน
โดย jataz2 พฤ 03 ก.ย. 2020 5:51 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
205
พฤ 03 ก.ย. 2020 5:51 pm โดย jataz2
งานที่ได้เงินเดือนเยอะ
โดย jataz2 พฤ 03 ก.ย. 2020 5:38 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
166
พฤ 03 ก.ย. 2020 5:38 pm โดย jataz2
จัดการขยะ กับน้ำเสีย
โดย jataz2 พฤ 03 ก.ย. 2020 5:25 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
158
พฤ 03 ก.ย. 2020 5:25 pm โดย jataz2
ปัญหาการบันทึกใบแจ้งหนี้ในระบบ กับใบแจ้งหนี้/ใบกำกับภาษีที่ได้รับจากเจ้าหนี้ไม่ตรงกัน จะต้องทำอย่างไร
โดย natthanit.r2538 พฤ 03 ก.ย. 2020 3:51 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
145
พฤ 03 ก.ย. 2020 3:51 pm โดย natthanit.r2538
Edge Computing คืออะไร และมีประโยชน์อย่างไร
โดย nai_cyp อ 01 ก.ย. 2020 6:27 pm บอร์ด Share Knowledge
1
203
พฤ 10 ก.ย. 2020 5:15 pm โดย บุคคลทั่วไป
การสร้างบทความและสินค้าไว้ในหน้าเดียวกันในร้านค้าออนไลน์ด้วย Plugin Content Product Match ใน MooZiiCart
โดย bolue อ 01 ก.ย. 2020 3:51 pm บอร์ด MindPHP News & Feedback
0
199
อ 01 ก.ย. 2020 3:51 pm โดย bolue
โชว์สินค้าสไลด์ในร้านค้าออนไลน์ด้วย Module Ajax Search ใน MooZiiCart
โดย bolue อ 01 ก.ย. 2020 3:42 pm บอร์ด MindPHP News & Feedback
0
121
อ 01 ก.ย. 2020 3:42 pm โดย bolue
โชว์สินค้าสไลด์ในร้านค้าออนไลน์ด้วย Module Product Slide ใน MooZiiCart
โดย bolue อ 01 ก.ย. 2020 3:34 pm บอร์ด MindPHP News & Feedback
0
114
อ 01 ก.ย. 2020 3:34 pm โดย bolue
แสดงสถิติของร้านค้าในร้านค้าออนไลน์ด้วย Module Statistics ใน MooZiiCart
โดย bolue อ 01 ก.ย. 2020 3:30 pm บอร์ด MindPHP News & Feedback
0
99
อ 01 ก.ย. 2020 3:30 pm โดย bolue
แสดง ratings ของสินค้าในร้านค้าออนไลน์ด้วย Module Products Reviews ใน MooZiiCart
โดย bolue อ 01 ก.ย. 2020 3:20 pm บอร์ด MindPHP News & Feedback
0
86
อ 01 ก.ย. 2020 3:20 pm โดย bolue
แสดงป้ายกำกับสินค้าในร้านค้าออนไลน์ด้วย Module Product Labels ใน MooZiiCart
โดย bolue อ 01 ก.ย. 2020 3:12 pm บอร์ด MindPHP News & Feedback
0
92
อ 01 ก.ย. 2020 3:12 pm โดย bolue
Import excel .xlxs มีปัญหาอยู่ไฟล์หนึ่งไม่สามารถเเสดงได้ เจอ error ไม่ทราบว่าเกิดจากอะไร
โดย thatsawan อ 01 ก.ย. 2020 11:44 am บอร์ด Programming - PHP
1
453
อ 01 ก.ย. 2020 11:45 am โดย thatsawan