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

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

sample_yaml.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 880 bytes

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
AndroIRC แอพแชท IRC สำหรับโทรศัพท์มือถือ Android
โดย 5dollars1981 ศ 27 ก.ย. 2019 9:45 pm บอร์ด Mobile Programming - Android, iOS, Window Phone
0
64
ศ 27 ก.ย. 2019 9:45 pm โดย 5dollars1981
หากเราต้องการทำเว็บไซต์ ทำไมเราถึงต้องเลือกใช้ระบบที่มีการจัดการเนื้อหาอย่าง Joomla หรือ wordpress
โดย thatsawan ศ 27 ก.ย. 2019 7:20 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
68
ส 28 ก.ย. 2019 5:44 pm โดย mindphp
ทำความรู้จัก Dedicated Server เครื่องเซิฟเวอร์เช่าใช้ ครบกำหนดได้เป็นเจ้าของเครื่อง
โดย aninthana ศ 27 ก.ย. 2019 6:22 pm บอร์ด Linux - Web Server
0
52
ศ 27 ก.ย. 2019 6:22 pm โดย aninthana
Microsoft เปิดตัว Azure Sentinel ซึ่งเป็น บริการวิเคราะห์ข้อมูลความปลอดภัย (SIEM)
โดย chatee supasand ศ 27 ก.ย. 2019 3:10 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
31
ศ 27 ก.ย. 2019 3:10 pm โดย chatee supasand
Q อยากทราบวิธีทำแถบเมนูของ Form ให้สามารถใช้งานได้ในหน้าเว็บเดียว โดยไม่ต้องลิงค์ไปหน้าอื่นๆ ได้อย่างไรครับ
โดย birdkritsna ศ 27 ก.ย. 2019 2:26 pm บอร์ด HTML CSS
2
88
ศ 27 ก.ย. 2019 6:16 pm โดย birdkritsna
อยากทราบวิธีการที่จะตรวจสอบว่า poster_id ตรงกับโพสต์ที่เท่าไร
โดย Ittichai_chupol ศ 27 ก.ย. 2019 2:12 pm บอร์ด Programming - PHP
1
55
ศ 27 ก.ย. 2019 4:54 pm โดย mindphp
Fingerprint Scanner โดนแฮกได้ไหม ป้องกันอย่างไร
โดย birdkritsna พฤ 26 ก.ย. 2019 5:31 pm บอร์ด Mobile Application Developing- Android, iOS
0
52
พฤ 26 ก.ย. 2019 5:31 pm โดย birdkritsna
Could not load file or assembly 'Oracle.ManagedDataAccessDTC.DLL' or one of its dependencies
โดย jataz2 พฤ 26 ก.ย. 2019 3:29 pm บอร์ด Programming - C/C++ & java & Python
0
53
พฤ 26 ก.ย. 2019 3:29 pm โดย jataz2
Skype อัพเดทฟีเจอ์ใหม่ ปักหมุด ร่างข้อความ แสดงไฟล์ก่อนส่งได้แล้ว
โดย chatee supasand พฤ 26 ก.ย. 2019 2:39 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
43
พฤ 26 ก.ย. 2019 2:39 pm โดย chatee supasand
hotmail ส่งข้อความออกไม่ได้
โดย Anonymous พฤ 26 ก.ย. 2019 1:08 pm บอร์ด Programming - PHP
0
45
พฤ 26 ก.ย. 2019 1:08 pm โดย บุคคลทั่วไป
เมือกดปุ่ม Add to Cart แล้วไม่สามารถส่งจำนวนสินค้าตามที่เลือกได้ ครับ
โดย jamepiyawat พฤ 26 ก.ย. 2019 10:35 am บอร์ด JavaScript & Jquery Ajax
2
69
พฤ 26 ก.ย. 2019 2:29 pm โดย jamepiyawat
เปิดตัวระบบ Smart Travel ผ่านเทคโนโลยี 5G
โดย birdkritsna พ 25 ก.ย. 2019 6:49 pm บอร์ด MindPHP News
0
54
พ 25 ก.ย. 2019 6:49 pm โดย birdkritsna
จะทำอย่างไรให้ค่าที่ผู้ใช้กรอกขึ้นหน้า popup ได้ครับ
โดย jamepiyawat พ 25 ก.ย. 2019 3:55 pm บอร์ด Programming - PHP
2
74
พ 25 ก.ย. 2019 4:08 pm โดย mindphp
วิธีแก้ปัญหา import คำสั่ง SQL ในการสร้างตาราง #1067 - Invalid default value for 'use_date'
โดย birdkritsna พ 25 ก.ย. 2019 2:50 pm บอร์ด SQL Knowledge
3
93
พฤ 26 ก.ย. 2019 4:30 pm โดย birdkritsna
อัพเดทเลย! Joomla เวอร์ชั่น 3.9.12 ปรับปรุงระบบและความปลอดภัยเพิ่มเติม
โดย tsukasaz พ 25 ก.ย. 2019 10:10 am บอร์ด MindPHP News
1
73
ศ 27 ก.ย. 2019 9:43 am โดย Pannarai2015
สร้าง treemap ด้วย app script โดยดึงข้อมูลจาก google sheet
โดย tnimka พ 25 ก.ย. 2019 10:00 am บอร์ด Programming - PHP
0
66
พ 25 ก.ย. 2019 10:00 am โดย tnimka
ภาษาซี กับ โจทย์ loop ในตำนาน
โดย armnaja อ 24 ก.ย. 2019 9:25 pm บอร์ด Programming - C/C++ & java & Python
0
104
อ 24 ก.ย. 2019 9:25 pm โดย armnaja
เทคนิค การออกแบบรหัสสินค้าหรือบริการ
โดย aninthana อ 24 ก.ย. 2019 7:51 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
60
อ 24 ก.ย. 2019 7:51 pm โดย aninthana
Q - ปัญหา Git push Failed ครับ
โดย birdkritsna อ 24 ก.ย. 2019 7:25 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
58
พ 25 ก.ย. 2019 11:42 am โดย birdkritsna
Google Play Pass คืออะไร ดีอย่างไร
โดย birdkritsna อ 24 ก.ย. 2019 6:50 pm บอร์ด Share Knowledge
0
44
อ 24 ก.ย. 2019 6:50 pm โดย birdkritsna