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

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

sample_yaml.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 880 bytes

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
R - Option ตัวเลือก การศึกษา
โดย thatsawan พฤ 21 พฤษภาคม 2020 1:00 pm บอร์ด Odoojob.com - Manual & Content
1
2
ส 06 มิ.ย. 2020 6:50 pm โดย thatsawan
R - Option ตัวเลือก สวัสดิการ
โดย thatsawan พฤ 21 พฤษภาคม 2020 1:00 pm บอร์ด Odoojob.com - Manual & Content
0
2
พฤ 21 พฤษภาคม 2020 1:00 pm โดย thatsawan
R - Option ตัวเลือก ประเภทการจ้าง
โดย thatsawan พฤ 21 พฤษภาคม 2020 12:59 pm บอร์ด Odoojob.com - Manual & Content
1
2
ส 06 มิ.ย. 2020 6:53 pm โดย thatsawan
ERP กับการขอเบิกเครื่องมือมาใช้จากสโตร์
โดย sirirat พฤ 21 พฤษภาคม 2020 12:58 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
61
พฤ 21 พฤษภาคม 2020 12:58 pm โดย sirirat
R - Option ตัวเลือก ประสบการณ์
โดย thatsawan พฤ 21 พฤษภาคม 2020 12:53 pm บอร์ด Odoojob.com - Manual & Content
1
3
ส 06 มิ.ย. 2020 6:50 pm โดย thatsawan
R - Option ตัวเลือก เงินเดือน
โดย thatsawan พฤ 21 พฤษภาคม 2020 12:53 pm บอร์ด Odoojob.com - Manual & Content
0
3
พฤ 21 พฤษภาคม 2020 12:53 pm โดย thatsawan
การจัดการภาษีมูลค่าเพิ่มเพื่อนำส่งในระบบ ERP
โดย sirirat พฤ 21 พฤษภาคม 2020 12:00 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
61
พฤ 21 พฤษภาคม 2020 12:00 pm โดย sirirat
การตั้งหนี้จากรายการซื้อวัสดุอุปกรณ์ในระบบ ERP
โดย sirirat พฤ 21 พฤษภาคม 2020 11:00 am บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
56
พฤ 21 พฤษภาคม 2020 11:00 am โดย sirirat
งานประจำวันที่ 21 พฤษภาคม 2563
โดย sirirat พฤ 21 พฤษภาคม 2020 10:08 am บอร์ด M102 - ศิริรัตน์ ทิพย์น้อย
4
26
พฤ 21 พฤษภาคม 2020 8:45 pm โดย thatsawan
R - รูปแบบชื่อที่ใช้ แสดง และ subject ของ E-mail แต่ละฉนับ
โดย mindphp พฤ 21 พฤษภาคม 2020 1:53 am บอร์ด OdooJob.com - Developer
0
1
พฤ 21 พฤษภาคม 2020 1:53 am โดย mindphp
สรุปการเรียนรู้ประจำวัน 20/05/63
โดย sirirat พ 20 พฤษภาคม 2020 8:47 pm บอร์ด M102 - ศิริรัตน์ ทิพย์น้อย
0
4
พ 20 พฤษภาคม 2020 8:47 pm โดย sirirat
ตัวเลือกในการเรียกดูรายงาน AR BALANCE DETAIL REPORT เพื่อให้ได้รายการที่ต้องการ
โดย sirirat พ 20 พฤษภาคม 2020 7:01 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
65
พ 20 พฤษภาคม 2020 7:01 pm โดย sirirat
Work Request ในระบบ ERP สำหรับการออกเอกสารใบขอจ้างงานผู้รับเหมา
โดย sirirat พ 20 พฤษภาคม 2020 6:40 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
69
พ 20 พฤษภาคม 2020 6:40 pm โดย sirirat
3 วิธีการคุม Budget ในระบบการสั่งจ้างผู้รับเหมา
โดย sirirat พ 20 พฤษภาคม 2020 6:07 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
58
พ 20 พฤษภาคม 2020 6:07 pm โดย sirirat
ความแตกต่างระหว่างเงินสดย่อยกับเงินทดรองจ่าย
โดย sirirat พ 20 พฤษภาคม 2020 5:30 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
56
พ 20 พฤษภาคม 2020 5:30 pm โดย sirirat
ระบบ ERP กับการตั้งเงินมัดจำจ่ายเพื่อให้บัญชีดึงไปตั้งหนี้จ่ายชำระ
โดย sirirat พ 20 พฤษภาคม 2020 3:58 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
62
พ 20 พฤษภาคม 2020 3:58 pm โดย sirirat
ระบบ ERP กับการสั่งซื้อวัสดุและอุปกรณ์เพื่อใช้งานในบริษัท
โดย sirirat พ 20 พฤษภาคม 2020 12:56 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
141
พ 20 พฤษภาคม 2020 12:56 pm โดย sirirat
E-mail pr odoojob
โดย numtan5839 พ 20 พฤษภาคม 2020 11:24 am บอร์ด Odoojob.com - Manual & Content
0
4
พ 20 พฤษภาคม 2020 11:24 am โดย numtan5839
งานประจำวันที่ 20 พฤษภาคม 2563
โดย sirirat พ 20 พฤษภาคม 2020 10:02 am บอร์ด M102 - ศิริรัตน์ ทิพย์น้อย
4
34
พ 20 พฤษภาคม 2020 8:29 pm โดย sirirat
R - template อีเมล
โดย tsukasaz อ 19 พฤษภาคม 2020 9:23 pm บอร์ด OdooJob.com - Developer
1
5
พฤ 21 พฤษภาคม 2020 1:55 am โดย mindphp