YAML là gì?
YAML (YAML Ain’t Markup Language) là một chuẩn dữ liệu kiểu serialization mà có thể được sử dụng bởi các ngôn ngữ lập trình khác nhau. Nó thường được áp dụng để tạo ra các tệp cấu hình cho nhiều ứng dụng khác nhau, ví dụ như Docker Compose.
Thông tin cơ bản:
- Version mới nhất: 1.2
- Định dạng mở rộng: .yaml, .yml
- Tổ chức: yaml.org
Cú pháp cơ bản
Định nghĩa cấu trúc một danh sách (list) hay mảng (array)
# Programing Languages - PHP - Perl - NodeJS # Shopping list [milk, pumpkin pie, eggs, juice]
Định nghĩa kiểu dữ liệu key-value
# Indented Block name: Nguyen Van A age: 33 # Inline Block {name: Nguyen Van A, age: 33}
Định nghĩa ký tự dạng chuỗi, ký tự dạng chuỗi không yêu cầu dấu quote
data: | There once was a short man from Ealing Who got on a bus to Darjeeling It said on the door "Please don't spit on the floor" So he carefully spat on the ceiling data: > Wrapped text will be folded into a single paragraph Blank lines denote paragraph breaks
Định nghĩa 1 đối tượng
customer: first_name: Dorothy family_name: Gale
Đọc 1 file YAML sử dụng ngôn ngữ lập trình
Đọc file YAML trong Perl
Sử dụng thư viện Perl có tên là YAML::XS để đọc bất kỳ file YAML nào. Để cài đặt module này các bạn sử dụng cài thông qua cpan
cpan YAML::XS
Đoạn code example, mà mình sử dụng để load 1 file config.yml
#!/usr/bin/perl # # Read YAML Config File by vinasupport.com # use strict; use warnings; use YAML::XS 'LoadFile'; use Data::Dumper; my $config = LoadFile('config.yaml'); print Dumper($config);
Đọc file YAML trong PHP
Để đọc file yaml trong PHP, các bạn có thể sử dụng function yaml_parse_file được PHP hỗ trợ sẵn. Đoạn code example như bên dưới.
<?php function cb_yaml_date($value, $tag, $flags) { return new DateTime($value); } $yaml = <<<YAML event1: name: My Event date: !date 25.05.2001 YAML; $ndocs = 0; $data = yaml_parse($yaml, 0, $ndocs, array('!date' => 'cb_yaml_date')); print_r($data);
Ngoài ra PHP còn có rất nhiều thư viện bên ngoài như:
Đọc file YAML trong Python
Trong Python, để đọc file yaml thì chúng ta cài đặt thư viện PyYAML thông qua pip3
pip3 install PyYAML
Đoạn sample code đọc yaml trong Python 3
#!/usr/bin/env python3 import yaml with open("configs.yaml", 'r') as stream: try: print(yaml.safe_load(stream)) except yaml.YAMLError as error: print(error)