PHP:
עבודה עם YAML

איך לעשות:

PHP, כפי שהוא נמצא בגרסאותיו הנוכחיות, לא תומך בניתוח YAML כחלק מספרייתו הסטנדרטית. הדרך הפשוטה ביותר לעבוד עם YAML ב-PHP היא באמצעות רכיב YAML של Symfony או הרחבת PECL של yaml.

שימוש ברכיב YAML של Symfony

ראשית, התקן את רכיב YAML של Symfony דרך Composer:

composer require symfony/yaml

לאחר מכן, תוכל לנתח וליצור תוכן ב-YAML כך:

<?php
require_once __DIR__.'/vendor/autoload.php';

use Symfony\Component\Yaml\Yaml;

// ניתוח YAML
$yamlString = <<<YAML
greet: Hello, World!
framework:
  name: Symfony
  language: PHP
YAML;

$array = Yaml::parse($yamlString);
print_r($array);

// יצירת YAML ממערך
$array = [
    'greet' => 'Hello, YAML!',
    'framework' => [
        'name' => 'Symfony',
        'language' => 'PHP',
    ],
];

$yaml = Yaml::dump($array);
echo $yaml;

דוגמא לפלט בעת ניתוח:

Array
(
    [greet] => Hello, World!
    [framework] => Array
        (
            [name] => Symfony
            [language] => PHP
        )

)

דוגמא לפלט בעת יצירה:

greet: Hello, YAML!
framework:
    name: Symfony
    language: PHP

שימוש בהרחבת yaml PECL

אם אתה מעדיף, או אם דרישות הפרויקט שלך מאפשרות זאת, ההרחבה PECL יכולה להיות דרך יעילה נוספת לעבוד עם YAML. ראשית, ודא שההרחבה מותקנת:

pecl install yaml

לאחר מכן, הפעל אותה בתצורת ה-php.ini שלך:

extension=yaml.so

הנה איך לנתח ולפלוט YAML:

<?php

// ניתוח YAML
$yamlString = <<<YAML
greet: Hello, World!
framework:
  name: Symfony
  language: PHP
YAML;

$array = yaml_parse($yamlString);
print_r($array);

// יצירת YAML ממערך
$array = [
    'greet' => 'Hello, YAML!',
    'framework' => [
        'name' => 'Symfony',
        'language' => 'PHP',
    ],
];

$yaml = yaml_emit($array);
echo $yaml;

הפלט יהיה דומה לזה של רכיב Symfony, הממחיש את תפקידו של YAML כגשר בין פורמט קריא לאדם לבין מבני מערך PHP, מקל על תצורה ועיבוד נתונים קל יותר.