YamlPecl::decode

public static YamlPecl::decode($raw)

Decodes data from the serialization format.

Parameters

string $raw: The raw data string to decode.

Return value

mixed The decoded data.

Overrides SerializationInterface::decode

File

core/lib/Drupal/Component/Serialization/YamlPecl.php, line 29

Class

YamlPecl
Provides default serialization for YAML using the PECL extension.

Namespace

Drupal\Component\Serialization

Code

public static function decode($raw) {
  // yaml_parse() will error with an empty value.
  if (!trim($raw)) {
    return NULL;
  }
  // @todo Use ErrorExceptions when https://drupal.org/node/1247666 is in.
  // yaml_parse() will throw errors instead of raising an exception. Until
  // such time as Drupal supports native PHP ErrorExceptions as the error
  // handler, we need to temporarily set the error handler as ::errorHandler()
  // and then restore it after decoding has occurred. This allows us to turn
  // parsing errors into a throwable exception.
  // @see Drupal\Component\Serialization\Exception\InvalidDataTypeException
  // @see http://php.net/manual/en/class.errorexception.php
  set_error_handler([__CLASS__, 'errorHandler']);
  $ndocs = 0;
  $data = yaml_parse($raw, 0, $ndocs, [
    YAML_BOOL_TAG => '\Drupal\Component\Serialization\YamlPecl::applyBooleanCallbacks',
  ]);
  restore_error_handler();
  return $data;
}
doc_Drupal
2016-10-29 09:57:01
Comments
Leave a Comment

Please login to continue.