Chris@0: getMessage()); Chris@0: } Chris@0: $missing_keys = array_diff($this->getRequiredKeys(), array_keys($parsed_info)); Chris@0: if (!empty($missing_keys)) { Chris@0: throw new InfoParserException('Missing required keys (' . implode(', ', $missing_keys) . ') in ' . $filename); Chris@0: } Chris@0: if (isset($parsed_info['version']) && $parsed_info['version'] === 'VERSION') { Chris@0: $parsed_info['version'] = \Drupal::VERSION; Chris@0: } Chris@0: } Chris@0: return $parsed_info; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Returns an array of keys required to exist in .info.yml file. Chris@0: * Chris@0: * @return array Chris@0: * An array of required keys. Chris@0: */ Chris@0: protected function getRequiredKeys() { Chris@0: return ['type', 'core', 'name']; Chris@0: } Chris@0: Chris@0: }