You are here

class YamlFileLoader in Zircon Profile 8

Same name in this branch
  1. 8 vendor/symfony/routing/Loader/YamlFileLoader.php \Symfony\Component\Routing\Loader\YamlFileLoader
  2. 8 vendor/symfony/translation/Loader/YamlFileLoader.php \Symfony\Component\Translation\Loader\YamlFileLoader
  3. 8 vendor/symfony/dependency-injection/Loader/YamlFileLoader.php \Symfony\Component\DependencyInjection\Loader\YamlFileLoader
  4. 8 vendor/symfony/validator/Mapping/Loader/YamlFileLoader.php \Symfony\Component\Validator\Mapping\Loader\YamlFileLoader
  5. 8 vendor/symfony/serializer/Mapping/Loader/YamlFileLoader.php \Symfony\Component\Serializer\Mapping\Loader\YamlFileLoader
  6. 8 core/lib/Drupal/Core/DependencyInjection/YamlFileLoader.php \Drupal\Core\DependencyInjection\YamlFileLoader
Same name and namespace in other branches
  1. 8.0 vendor/symfony/translation/Loader/YamlFileLoader.php \Symfony\Component\Translation\Loader\YamlFileLoader

YamlFileLoader loads translations from Yaml files.

@author Fabien Potencier <fabien@symfony.com>

Hierarchy

Expanded class hierarchy of YamlFileLoader

1 file declares its use of YamlFileLoader
YamlFileLoaderTest.php in vendor/symfony/translation/Tests/Loader/YamlFileLoaderTest.php
1 string reference to 'YamlFileLoader'
TranslatorTest::getTransFileTests in vendor/symfony/translation/Tests/TranslatorTest.php

File

vendor/symfony/translation/Loader/YamlFileLoader.php, line 25

Namespace

Symfony\Component\Translation\Loader
View source
class YamlFileLoader extends ArrayLoader {
  private $yamlParser;

  /**
   * {@inheritdoc}
   */
  public function load($resource, $locale, $domain = 'messages') {
    if (!stream_is_local($resource)) {
      throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
    }
    if (!file_exists($resource)) {
      throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
    }
    if (!class_exists('Symfony\\Component\\Yaml\\Parser')) {
      throw new \LogicException('Loading translations from the YAML format requires the Symfony Yaml component.');
    }
    if (null === $this->yamlParser) {
      $this->yamlParser = new YamlParser();
    }
    try {
      $messages = $this->yamlParser
        ->parse(file_get_contents($resource));
    } catch (ParseException $e) {
      throw new InvalidResourceException(sprintf('Error parsing YAML, invalid file "%s"', $resource), 0, $e);
    }

    // empty file
    if (null === $messages) {
      $messages = array();
    }

    // not an array
    if (!is_array($messages)) {
      throw new InvalidResourceException(sprintf('The file "%s" must contain a YAML array.', $resource));
    }
    $catalogue = parent::load($messages, $locale, $domain);
    if (class_exists('Symfony\\Component\\Config\\Resource\\FileResource')) {
      $catalogue
        ->addResource(new FileResource($resource));
    }
    return $catalogue;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ArrayLoader::flatten private function Flattens an nested array of translations.
YamlFileLoader::$yamlParser private property
YamlFileLoader::load public function Loads a locale. Overrides ArrayLoader::load