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

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

sample_yaml.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 880 bytes

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
อยากทราบวิธีการปรับค่าการแจ้งเตือน ในเว็บบอร์ด phpbb เมื่อมีการแจ้งเตือนเพิ่มเข้ามา
โดย Ittichai_chupol อ 10 ก.ย. 2019 5:14 pm บอร์ด Programming - PHP
1
79
อ 10 ก.ย. 2019 6:22 pm โดย mindphp
Tile ผู้ผลิตอุปกรณ์ Tracker สำหรับตามหาสิ่งของหายสามารถสั่งการได้ด้วย Google Assistant
โดย jamepiyawat อ 10 ก.ย. 2019 5:10 pm บอร์ด Share Knowledge
0
70
อ 10 ก.ย. 2019 5:10 pm โดย jamepiyawat
E-Bidding คืออะไร
โดย EyePornnipa อ 10 ก.ย. 2019 4:19 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
74
อ 10 ก.ย. 2019 4:19 pm โดย EyePornnipa
จากฟังก์ชันเรียกใช้รูปภาพ ใช้งานอย่างไรครับ
โดย Patipat อ 10 ก.ย. 2019 3:37 pm บอร์ด Joomla Development
2
72
อ 10 ก.ย. 2019 4:06 pm โดย Patipat
เรียกใช้ อาเรย์ forech อย่างไรครับ
โดย Patipat อ 10 ก.ย. 2019 11:53 am บอร์ด Joomla Development
4
112
อ 10 ก.ย. 2019 3:14 pm โดย Patipat
ฟีเจอร์ Ambient Mode ฟีเจอร์ใหม่ของ Google Assistant ที่จะเปลี่ยนมือถือ-แท็บเล็ตให้เป็นหน้าจออัจฉริยะ
โดย jamepiyawat จ 09 ก.ย. 2019 6:48 pm บอร์ด Share Knowledge
0
70
จ 09 ก.ย. 2019 6:48 pm โดย jamepiyawat
อยากทราบวิธีการ เคลียแคช bbocode
โดย Ittichai_chupol จ 09 ก.ย. 2019 5:54 pm บอร์ด Programming - PHP
4
115
จ 09 ก.ย. 2019 6:10 pm โดย Ittichai_chupol
อากทราบวิธีการเปิด Activate ผู้ใช้งาน ใน phpbb
โดย Ittichai_chupol จ 09 ก.ย. 2019 5:42 pm บอร์ด Programming - PHP
0
60
จ 09 ก.ย. 2019 5:42 pm โดย Ittichai_chupol
ต้องการปิดส่วนรายละเอียดของเนื้อหา บนเว็บไซต์ต้องทำยังไงค่ะ
โดย thatsawan จ 09 ก.ย. 2019 4:05 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
2
73
จ 09 ก.ย. 2019 4:13 pm โดย mindphp
insert ข้อมูลลงดาต้าเบสไม่ได้
โดย Anonymous อ 08 ก.ย. 2019 1:43 pm บอร์ด Programming - PHP
0
91
อ 08 ก.ย. 2019 1:43 pm โดย บุคคลทั่วไป
ทำความรู้จักกับ SDL Trados Studio
โดย MiyukiEamrucksa ส 07 ก.ย. 2019 5:47 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
85
ส 07 ก.ย. 2019 5:47 pm โดย MiyukiEamrucksa
อยากทราบวิธีเรียกใช้ค่าของ Array ครับ
โดย Patipat ส 07 ก.ย. 2019 5:25 pm บอร์ด Joomla Development
1
74
ส 07 ก.ย. 2019 5:33 pm โดย thatsawan
Q - ฟังก์ชันสร้าง แคชไม่ได้ครับ
โดย Patipat ส 07 ก.ย. 2019 4:09 pm บอร์ด Joomla Development
2
80
อ 10 ก.ย. 2019 11:44 am โดย Patipat
Q - ทำไม css ใช้งานไม่ได้ path ถูกไหมครับ
โดย Patipat ส 07 ก.ย. 2019 2:12 pm บอร์ด Joomla Development
3
122
ส 07 ก.ย. 2019 2:52 pm โดย Patipat
คุณสมบัติของนักแปล
โดย MiyukiEamrucksa ส 07 ก.ย. 2019 12:03 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
87
ส 07 ก.ย. 2019 12:03 pm โดย MiyukiEamrucksa
รวมข้อมูลของ แจ็ค หม่า ผู้ก่อตั้งกลุ่มอาลีบาบา ที่คุณอาจไม่เคยรู้มาก่อน ฺBy Drivemate
โดย nemo413 ส 07 ก.ย. 2019 8:09 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
77
ส 07 ก.ย. 2019 4:53 pm โดย nemo413
แจกโค้ดหน้าเว็บด้วย HTML และ css
โดย jamepiyawat ศ 06 ก.ย. 2019 6:44 pm บอร์ด CSS Knowledge
0
122
ศ 06 ก.ย. 2019 6:44 pm โดย jamepiyawat
Microsoft เอาอีกแล้ว ซื้อกิจการ Movere เสริมความแข็งแกร่งให้ Azure Migrate
โดย chatee supasand ศ 06 ก.ย. 2019 6:32 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
49
ศ 06 ก.ย. 2019 6:32 pm โดย chatee supasand
สร้างหน้าเว็บด้วย HTML และ css
โดย jamepiyawat ศ 06 ก.ย. 2019 6:02 pm บอร์ด CSS Knowledge
0
58
ศ 06 ก.ย. 2019 6:02 pm โดย jamepiyawat
Google Assistant สามารถสั่งพิมพ์ข้อความผ่านหน้าจอ Lock Screen ได้ โดยไม่ต้องปลดล็อคเครื่อง
โดย jamepiyawat ศ 06 ก.ย. 2019 5:21 pm บอร์ด Share Knowledge
0
55
ศ 06 ก.ย. 2019 5:21 pm โดย jamepiyawat