You are here

public function YamlFileLoader::load in Service Container 7

Same name in this branch
  1. 7 lib/Drupal/Core/DependencyInjection/YamlFileLoader.php \Drupal\Core\DependencyInjection\YamlFileLoader::load()
  2. 7 modules/providers/service_container_symfony/lib/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php \Symfony\Component\DependencyInjection\Loader\YamlFileLoader::load()
Same name and namespace in other branches
  1. 7.2 lib/Drupal/Core/DependencyInjection/YamlFileLoader.php \Drupal\Core\DependencyInjection\YamlFileLoader::load()

Loads a Yaml file.

Parameters

mixed $file The resource:

File

lib/Drupal/Core/DependencyInjection/YamlFileLoader.php, line 61
Contains \Drupal\Core\DependencyInjection\YamlFileLoader.

Class

YamlFileLoader
YamlFileLoader loads YAML files service definitions.

Namespace

Drupal\Core\DependencyInjection

Code

public function load($file) {

  // Load from the file cache, fall back to loading the file.
  // @todo Refactor this to cache parsed definition objects in
  //   https://www.drupal.org/node/2464053
  $content = $this->fileCache
    ->get($file);
  if (!$content) {
    $content = $this
      ->loadFile($file);
    $this->fileCache
      ->set($file, $content);
  }

  // Not supported.

  //$this->container->addResource(new FileResource($path));

  // empty file
  if (null === $content) {
    return;
  }

  // imports
  // Not supported.

  //$this->parseImports($content, $file);

  // parameters
  if (isset($content['parameters'])) {
    if (!is_array($content['parameters'])) {
      throw new InvalidArgumentException(sprintf('The "parameters" key should contain an array in %s. Check your YAML syntax.', $file));
    }
    foreach ($content['parameters'] as $key => $value) {
      $this->container
        ->setParameter($key, $this
        ->resolveServices($value));
    }
  }

  // extensions
  // Not supported.

  //$this->loadFromExtensions($content);

  // services
  $this
    ->parseDefinitions($content, $file);
}