File "symfony.php"
Full path: /home/argothem/www/organecyberpresse/plugins/auto/yaml/v3.1.2/inc/symfony.php
File size: 2.85 KB
MIME-type: text/x-php
Charset: utf-8
<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
require_once _DIR_PLUGIN_YAML . 'vendor/autoload.php';
use Symfony\Component\Yaml\Yaml;
use Symfony\Component\Yaml\Exception\ParseException;
/**
* Encode une structure de données PHP en une chaîne YAML.
* Utilise pour cela la librairie symfony/yaml (branche v4) qui est la plus récente.
*
* @param mixed $structure
* Structure PHP, tableau, chaine... à convertir en YAML.
* @param array $options
* Tableau associatif des options du dump. Cette librairie accepte:
* - 'inline' : niveau à partir duquel la présentation du YAML devient inline, 3 par défaut.
* - 'indent' : nombre d'espaces pour chaque niveau d'indentation, 2 par défaut.
* - 'flags' : combinaison des flags DUMP_* supportés par la fonction (voir documentation).
*
* @return string
* Chaîne YAML construite.
*/
function symfony_yaml_encode($structure, $options = []) {
// Traitement des options du dump
if (empty($options['inline']) or (isset($options['inline']) and !is_int($options['inline']))) {
$options['inline'] = 3;
}
if (empty($options['indent']) or (isset($options['indent']) and !is_int($options['indent']))) {
$options['indent'] = 2;
}
if (!isset($options['flags']) or (isset($options['flags']) and !is_int($options['flags']))) {
$options['flags'] = 0;
}
$dump = Yaml::dump($structure, $options['inline'], $options['indent'], $options['flags']);
return $dump;
}
/**
* Décode une chaîne YAML en une structure de données PHP adaptée.
* Utilise pour cela la librairie symfony/yaml (branche v4) qui est la plus récente.
*
* @param string $input
* La chaîne YAML à décoder.
* Tableau associatif des options du parsing. Cette librairie accepte:
* - 'include' : si vrai indique qu'il faut traiter les inclusions YAML. Cela implique de forcer le flag
* PARSE_CUSTOM_TAGS
* - 'flags' : combinaison des flags PARSE_* supportés par la fonction (voir documentation).
* - 'show_error' : indicateur d'affichage des erreurs de parsing, false par défaut.
*
* @return bool|mixed
* Structure PHP produite par le parsing de la chaîne YAML.
*/
function symfony_yaml_decode($input = true, $options = []) {
$parsed = false;
// Traitement des options du parsing.
$flags = 0;
if (isset($options['flags']) and is_int($options['flags'])) {
$flags = $options['flags'];
}
try {
$parsed = Yaml::parse($input, $flags);
} catch (ParseException $exception) {
if ((is_bool($options) and $options) or (!empty($options['show_error']))) {
printf('Unable to parse the YAML string: %s', $exception->getMessage());
}
// Pour compenser l'absence par défaut d'erreurs, on loge l'erreur dans les logs SPIP.
spip_log("Erreur d'analyse YAML : " . $exception->getMessage(), 'yaml' . _LOG_ERREUR);
}
return $parsed;
}