Mercurial > hg > isophonics-drupal-site
view core/lib/Drupal/Core/Extension/InfoParserDynamic.php @ 16:c2387f117808
Routine composer update
author | Chris Cannam |
---|---|
date | Tue, 10 Jul 2018 15:07:59 +0100 |
parents | 4c8ae668cc8c |
children | 129ea1e6d783 |
line wrap: on
line source
<?php namespace Drupal\Core\Extension; use Drupal\Component\Serialization\Exception\InvalidDataTypeException; use Drupal\Core\Serialization\Yaml; /** * Parses dynamic .info.yml files that might change during the page request. */ class InfoParserDynamic implements InfoParserInterface { /** * {@inheritdoc} */ public function parse($filename) { if (!file_exists($filename)) { $parsed_info = []; } else { try { $parsed_info = Yaml::decode(file_get_contents($filename)); } catch (InvalidDataTypeException $e) { throw new InfoParserException("Unable to parse $filename " . $e->getMessage()); } $missing_keys = array_diff($this->getRequiredKeys(), array_keys($parsed_info)); if (!empty($missing_keys)) { throw new InfoParserException('Missing required keys (' . implode(', ', $missing_keys) . ') in ' . $filename); } if (isset($parsed_info['version']) && $parsed_info['version'] === 'VERSION') { $parsed_info['version'] = \Drupal::VERSION; } } return $parsed_info; } /** * Returns an array of keys required to exist in .info.yml file. * * @return array * An array of required keys. */ protected function getRequiredKeys() { return ['type', 'core', 'name']; } }