ให้เรตสมาชิก: 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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
สอบถามครับ RML สร้างเส้นตาราง แบบนี้ยังไงอะครับ
โดย chatee supasand ศ 13 ก.ย. 2019 10:28 am บอร์ด Programming - C/C++ & java & Python
2
108
ศ 13 ก.ย. 2019 11:03 am โดย chatee supasand
Google Assistant สามารถอ่านข้อความและตอบกลับได้บนแอพTelegram, Slack และ WhatsApp
โดย jamepiyawat พฤ 12 ก.ย. 2019 6:42 pm บอร์ด Share Knowledge
0
62
พฤ 12 ก.ย. 2019 6:42 pm โดย jamepiyawat
แสดงสินค้าโดยที่ให้ สินค้าแสดงแบบสุ่ม และแสดงแค่ 3 อย่าง ทำอย่างไรครับ
โดย Patipat พฤ 12 ก.ย. 2019 6:13 pm บอร์ด Joomla Development
1
80
พฤ 12 ก.ย. 2019 6:28 pm โดย tsukasaz
Windows 10 สามารถใช้โปรแกรม PowerToys ได้แล้ว
โดย chatee supasand พฤ 12 ก.ย. 2019 6:12 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
66
พฤ 12 ก.ย. 2019 6:12 pm โดย chatee supasand
ดึงชื่อรูปภาพ และนำชื่อมาแสดงเป็นภาพอย่างไรครับ
โดย Patipat พฤ 12 ก.ย. 2019 5:13 pm บอร์ด Joomla Development
2
79
พฤ 12 ก.ย. 2019 5:20 pm โดย Patipat
ปุ่ม Remove กดแล้วไม่ยอมลบสินค้าให้ครับ
โดย jamepiyawat พฤ 12 ก.ย. 2019 4:20 pm บอร์ด Programming - PHP
4
107
พฤ 12 ก.ย. 2019 5:57 pm โดย jamepiyawat
ทำยังไงให้ hover ใน แท็ก div แล้วตัวอักษรใน แท็ก div มันเปลี่ยนสีครับ
โดย jamepiyawat พฤ 12 ก.ย. 2019 3:49 pm บอร์ด HTML CSS
4
95
พฤ 12 ก.ย. 2019 4:13 pm โดย jamepiyawat
การบันทึกบัญชีค่าเบี้ยประกันภัยกลุ่ม
โดย EyePornnipa พฤ 12 ก.ย. 2019 2:39 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
1
98
ส 14 ก.ย. 2019 10:25 am โดย Amp_Audit
ใช้งานฟังก์ชันแล้วขึ้นเออเร่อครับ
โดย Patipat พฤ 12 ก.ย. 2019 2:19 pm บอร์ด Joomla Development
6
112
พฤ 12 ก.ย. 2019 3:27 pm โดย Patipat
5 เหตุผล รับเขียนเนื้อหาของบทความ เพราะเหตุใดจะต้องว่าจ้างคนเขียนบทความ
โดย articleheros พฤ 12 ก.ย. 2019 11:26 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
74
พ 09 ต.ค. 2019 4:27 pm โดย LEG
ใครติดตั้ง mjupgrade ไม่ได้ เจอ Error ตอนติดตั้ง Extension com_mjupgrade
โดย mindphp พฤ 12 ก.ย. 2019 11:24 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
74
พฤ 12 ก.ย. 2019 11:32 am โดย mindphp
สอบถามเกี่ยวกับการทำ log เก็บการเข้าใช้งานของโปรแกรม wed serviec
โดย jirawoot พฤ 12 ก.ย. 2019 11:19 am บอร์ด Programming - C/C++ & java & Python
1
75
พฤ 12 ก.ย. 2019 11:58 am โดย tatiya
อยากทราบวิธีการใช้งาน unserialize() กับ serialize() ใน phpbb
โดย Ittichai_chupol พฤ 12 ก.ย. 2019 11:04 am บอร์ด Programming - PHP
0
60
พฤ 12 ก.ย. 2019 11:04 am โดย Ittichai_chupol
อยากทราบวิธ๊การแก้ไขการ Export ไฟล์ Excel แล้วเป็นภาษาต่างดาว phpbb
โดย Ittichai_chupol พฤ 12 ก.ย. 2019 10:59 am บอร์ด Programming - PHP
0
73
พฤ 12 ก.ย. 2019 10:59 am โดย Ittichai_chupol
md gallery สามารถ สร้าง ลบ ในหน้าเว็บได้ไหมครับ
โดย Jahari Aum พ 11 ก.ย. 2019 11:47 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
109
พฤ 12 ก.ย. 2019 12:28 am โดย mindphp
วิธีการสมัครเข้าใช้งาน Skype
โดย chatee supasand พ 11 ก.ย. 2019 6:38 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
87
พ 11 ก.ย. 2019 6:38 pm โดย chatee supasand
YouTube.com/Fashion ช่อง YouTube ที่มีเฉพาะคอนเทนต์แฟชั่นและความสวยงามเท่านั้น
โดย jamepiyawat พ 11 ก.ย. 2019 5:46 pm บอร์ด Share Knowledge
0
54
พ 11 ก.ย. 2019 5:46 pm โดย jamepiyawat
การเลือกดึงข้อมูลในอาเรย์บางตัวมาใช้งาน ในรูปแบบ foreach
โดย Patipat พ 11 ก.ย. 2019 5:33 pm บอร์ด Joomla Developing Knowledge
0
68
พ 11 ก.ย. 2019 5:33 pm โดย Patipat
อยากให้แท็ก input กับแท็ก img อยู่ในบรรทัดเดียวกันครับ
โดย jamepiyawat พ 11 ก.ย. 2019 5:02 pm บอร์ด Joomla Development
2
82
พ 11 ก.ย. 2019 5:41 pm โดย jamepiyawat
ทำไมเรียกใช้ข้อมูลในอาเรย์แล้ว ไม่มีค่าเลยครับ
โดย Patipat พ 11 ก.ย. 2019 4:05 pm บอร์ด Joomla Development
3
85
พ 11 ก.ย. 2019 4:19 pm โดย tsukasaz