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

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

sample_yaml.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 880 bytes

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
การเขียน Er-Diagram
โดย moo1997 จ 20 ก.ค. 2020 5:23 pm บอร์ด SQL Knowledge
0
185
จ 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
323
จ 20 ก.ค. 2020 10:22 am โดย icphp
วิธีแก้ปัญหาตัวอักษรในใบปริ้นเอกสารจากตัวระบบห่าง ใน OpenERP / Odoo
โดย natthanit.r2538 ส 18 ก.ค. 2020 12:30 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
191
ส 18 ก.ค. 2020 12:30 pm โดย natthanit.r2538
เตรียมตัว นำเสนอ เก็บข้อมูล เชื่อม ERP เชื่อม E-COMMERCE พรีโม เทรดดิ้ง จำกัด
โดย mindphp พฤ 02 เม.ย. 2020 10:42 am บอร์ด พรีโม เทรดดิ้ง (Main)
26
60
พฤ 23 ก.ค. 2020 10:57 am โดย natthanit.r2538
argparse คืออะไร
โดย jirawoot พฤ 16 ก.ค. 2020 12:43 pm บอร์ด Python Knowledge
0
1731
พฤ 16 ก.ค. 2020 12:43 pm โดย jirawoot
เวอร์ชั่นใหม่มาแล้ว Joomla 3.9.20 อัพเดทความปลอดภัยหลายจุด
โดย tsukasaz พ 15 ก.ค. 2020 1:45 pm บอร์ด MindPHP News & Feedback
0
265
พ 15 ก.ค. 2020 1:45 pm โดย tsukasaz
วิธีการ การลิ้งค์ข้อมูลข้าม Sheet ใน Google Sheet คู่มือ บทความสอน
โดย Phakakrong อ 14 ก.ค. 2020 6:03 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
174
อ 14 ก.ค. 2020 6:03 pm โดย Phakakrong
c# read excel .xlsx
โดย jataz2 อ 14 ก.ค. 2020 2:50 pm บอร์ด Programming - C/C++ & java & Python
0
155
อ 14 ก.ค. 2020 2:50 pm โดย jataz2
การเทสแป้นพิมพ์
โดย natthanit.r2538 อ 14 ก.ค. 2020 1:43 pm บอร์ด Share Knowledge
0
135
อ 14 ก.ค. 2020 1:43 pm โดย natthanit.r2538
c# example format digit
โดย jataz2 อ 14 ก.ค. 2020 10:29 am บอร์ด Programming - C/C++ & java & Python
0
199
อ 14 ก.ค. 2020 10:29 am โดย jataz2
c# example read csv file
โดย jataz2 อ 14 ก.ค. 2020 10:20 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
102
อ 14 ก.ค. 2020 10:20 am โดย jataz2
งานประจำวันที่ 14 กรกฏาคม 2563
โดย Phakakrong อ 14 ก.ค. 2020 9:36 am บอร์ด M105 - ผกากรอง กุสาวดี
2
26
อ 14 ก.ค. 2020 7:26 pm โดย Phakakrong
การเขียนโพสต์แชร์ในบอร์ดด้วยรูปแบบที่ถูกต้อง
โดย Phakakrong จ 13 ก.ค. 2020 5:33 pm บอร์ด Share Knowledge
0
148
จ 13 ก.ค. 2020 5:33 pm โดย Phakakrong
วิธีการทำ Logged Calls รับ / โทรออก
โดย Phakakrong จ 13 ก.ค. 2020 2:52 pm บอร์ด M105 - ผกากรอง กุสาวดี
0
22
จ 13 ก.ค. 2020 2:52 pm โดย Phakakrong
ขอความช่วยเหลือ ดู Code สไลด์ แบบมีลูกศรกดด้านข้างครับ
โดย dzjp จ 13 ก.ค. 2020 2:43 pm บอร์ด Programming - PHP
0
165
จ 13 ก.ค. 2020 2:43 pm โดย dzjp
ร่วมใจให้ชุมชนดีเด่นกับโครงการธนาคารเห็ด
โดย medalezga จ 13 ก.ค. 2020 12:12 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
175
พ 15 ก.ค. 2020 9:58 am โดย Sirayu
การนำเอาข้อมูลหลายๆ Sheet(Excel ) มารวมกันด้วย Power Query
โดย Phakakrong จ 13 ก.ค. 2020 11:37 am บอร์ด Microsoft Office Knowledge & line & Etc
0
241
จ 13 ก.ค. 2020 11:37 am โดย Phakakrong
งานประจำวันที่ 13 กรกฏาคม 2563
โดย Phakakrong จ 13 ก.ค. 2020 9:43 am บอร์ด M105 - ผกากรอง กุสาวดี
4
65
จ 13 ก.ค. 2020 7:03 pm โดย Phakakrong