You are here

public function Parser::parse in Lockr 7.3

Parses a YAML string to a PHP value.

Parameters

string $value A YAML string:

int $flags A bit field of PARSE_* constants to customize the YAML parser behavior:

Return value

mixed A PHP value

Throws

ParseException If the YAML is not valid

1 call to Parser::parse()
Parser::parseFile in vendor/symfony/yaml/Parser.php
Parses a YAML file into a PHP value.

File

vendor/symfony/yaml/Parser.php, line 94

Class

Parser
Parser parses YAML strings to convert them to PHP arrays.

Namespace

Symfony\Component\Yaml

Code

public function parse($value, $flags = 0) {
  if (\is_bool($flags)) {
    @trigger_error('Passing a boolean flag to toggle exception handling is deprecated since Symfony 3.1 and will be removed in 4.0. Use the Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE flag instead.', E_USER_DEPRECATED);
    if ($flags) {
      $flags = Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE;
    }
    else {
      $flags = 0;
    }
  }
  if (\func_num_args() >= 3) {
    @trigger_error('Passing a boolean flag to toggle object support is deprecated since Symfony 3.1 and will be removed in 4.0. Use the Yaml::PARSE_OBJECT flag instead.', E_USER_DEPRECATED);
    if (func_get_arg(2)) {
      $flags |= Yaml::PARSE_OBJECT;
    }
  }
  if (\func_num_args() >= 4) {
    @trigger_error('Passing a boolean flag to toggle object for map support is deprecated since Symfony 3.1 and will be removed in 4.0. Use the Yaml::PARSE_OBJECT_FOR_MAP flag instead.', E_USER_DEPRECATED);
    if (func_get_arg(3)) {
      $flags |= Yaml::PARSE_OBJECT_FOR_MAP;
    }
  }
  if (Yaml::PARSE_KEYS_AS_STRINGS & $flags) {
    @trigger_error('Using the Yaml::PARSE_KEYS_AS_STRINGS flag is deprecated since Symfony 3.4 as it will be removed in 4.0. Quote your keys when they are evaluable instead.', E_USER_DEPRECATED);
  }
  if (false === preg_match('//u', $value)) {
    throw new ParseException('The YAML value does not appear to be valid UTF-8.', -1, null, $this->filename);
  }
  $this->refs = [];
  $mbEncoding = null;
  $e = null;
  $data = null;
  if (2 & (int) ini_get('mbstring.func_overload')) {
    $mbEncoding = mb_internal_encoding();
    mb_internal_encoding('UTF-8');
  }
  try {
    $data = $this
      ->doParse($value, $flags);
  } catch (\Exception $e) {
  } catch (\Throwable $e) {
  }
  if (null !== $mbEncoding) {
    mb_internal_encoding($mbEncoding);
  }
  $this->lines = [];
  $this->currentLine = '';
  $this->refs = [];
  $this->skippedLineNumbers = [];
  $this->locallySkippedLineNumbers = [];
  if (null !== $e) {
    throw $e;
  }
  return $data;
}