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

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

sample_yaml.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 880 bytes

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Webboard สำหรับ WP
โดย wichai007 อ 28 ก.ค. 2020 9:01 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
0
140
อ 28 ก.ค. 2020 9:01 pm โดย wichai007
ถอด วันที่จาก excel มาได้ผลลัพท์เเต่ละ แถว row ไม่เหมือนกัน
โดย thatsawan อ 28 ก.ค. 2020 8:18 pm บอร์ด Programming - PHP
2
126
อ 28 ก.ค. 2020 8:40 pm โดย mindphp
B - ตัวอย่างคำสั่งที่ไม่เข้าไปใน e-mail [2020-07][002]
โดย natthanit.r2538 ศ 24 ก.ค. 2020 6:28 pm บอร์ด MD-CRM - Tester
2
8
อ 28 ก.ค. 2020 7:12 pm โดย mindphp
สอบถาม มีวิธีเขียน pyhon อ่านไฟล์ .dll มั้ยครับ
โดย jirawoot ศ 24 ก.ค. 2020 2:36 pm บอร์ด Programming - C/C++ & java & Python
0
334
ศ 24 ก.ค. 2020 2:36 pm โดย jirawoot
จะต้องทำยังไงถึงจะสมบรูณ์ GroundOverlay overlay
โดย niran พ 22 ก.ค. 2020 11:19 pm บอร์ด JavaScript & Jquery Ajax
0
412
พ 22 ก.ค. 2020 11:19 pm โดย niran
จะต้องทำยังไงถึงจะสมบรูณ์
โดย Anonymous พ 22 ก.ค. 2020 9:14 pm บอร์ด HTML CSS
2
382
พฤ 23 ก.ค. 2020 8:30 pm โดย บุคคลทั่วไป
สอบถามเกี่ยวกับการรองรับจำนวนผู้ใช้งาน postgresql
โดย Anonymous พ 22 ก.ค. 2020 2:56 pm บอร์ด SQL - Database
1
407
พ 22 ก.ค. 2020 4:45 pm โดย mindphp
การรองรับจำนวนผู้ใช้ postgreSQL
โดย Anonymous พ 22 ก.ค. 2020 2:33 pm บอร์ด PostgreSQL
1
343
พ 22 ก.ค. 2020 4:45 pm โดย mindphp
ข้อควรคิดเรื่องสถานที่จัดงาน ก่อนเลือกธีมงานแต่งงาน
โดย thongdeesmilesuk พ 22 ก.ค. 2020 12:30 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
534
จ 24 ส.ค. 2020 10:58 am โดย Sirayu
ทำความรู้จักกับ Apache Hadoop
โดย moo1997 อ 21 ก.ค. 2020 5:42 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
213
อ 21 ก.ค. 2020 5:42 pm โดย moo1997
Marketplace คืออะไร
โดย moo1997 อ 21 ก.ค. 2020 3:50 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
260
อ 21 ก.ค. 2020 3:50 pm โดย moo1997
สอบถามเรื่องการเปลี่ยนภาษาบน Linux
โดย moo1997 อ 21 ก.ค. 2020 2:10 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
331
อ 21 ก.ค. 2020 2:17 pm โดย thatsawan
การ insert ข้อมูลจาก textbox ลงในฐานข้อมูล โดยใช้ภาษา C#
โดย moo1997 อ 21 ก.ค. 2020 11:49 am บอร์ด Programming - C/C++ & java & Python
0
286
อ 21 ก.ค. 2020 11:49 am โดย moo1997
การเขียน php เชื่อมต่อกับฐานข้อมูล
โดย moo1997 อ 21 ก.ค. 2020 11:42 am บอร์ด PHP Knowledge
0
1129
อ 21 ก.ค. 2020 11:42 am โดย moo1997
การสร้าง JOptionPane ในการรับค่า
โดย moo1997 อ 21 ก.ค. 2020 10:53 am บอร์ด Microsoft Office Knowledge & line & Etc
0
177
อ 21 ก.ค. 2020 10:53 am โดย moo1997
ระบบ Material Resource Planning
โดย moo1997 จ 20 ก.ค. 2020 6:15 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
161
จ 20 ก.ค. 2020 6:15 pm โดย moo1997
การเขียน Er-Diagram
โดย moo1997 จ 20 ก.ค. 2020 5:23 pm บอร์ด SQL Knowledge
0
183
จ 20 ก.ค. 2020 5:23 pm โดย moo1997
การเดินทางจากปราจีนบุรี มากรุงเทพมหานคร
โดย moo1997 จ 20 ก.ค. 2020 3:43 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
195
จ 20 ก.ค. 2020 3:43 pm โดย moo1997
CRM - Customer Relationship Management
โดย moo1997 จ 20 ก.ค. 2020 2:29 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
151
จ 20 ก.ค. 2020 2:29 pm โดย moo1997
สอบถามการหาค่าเฉลี่ยจาก timestamp ค่ะ sql
โดย Anonymous อ 19 ก.ค. 2020 5:19 pm บอร์ด Programming - PHP
1
317
จ 20 ก.ค. 2020 10:22 am โดย icphp