<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Translation\Loader; use Symfony\Component\Translation\Exception\InvalidResourceException; use Symfony\Component\Translation\Exception\LogicException; use Symfony\Component\Yaml\Exception\ParseException; use Symfony\Component\Yaml\Parser as YamlParser; use Symfony\Component\Yaml\Yaml; /** * YamlFileLoader loads translations from Yaml files. * * @author Fabien Potencier <fabien@symfony.com> */ class YamlFileLoader extends FileLoader { private $yamlParser; protected function loadResource(string $resource): array { if (null === $this->yamlParser) { if (!class_exists(\Symfony\Component\Yaml\Parser::class)) { throw new LogicException('Loading translations from the YAML format requires the Symfony Yaml component.'); } $this->yamlParser = new YamlParser(); } try { $messages = $this->yamlParser->parseFile($resource, Yaml::PARSE_CONSTANT); } catch (ParseException $e) { throw new InvalidResourceException(sprintf('The file "%s" does not contain valid YAML: ', $resource).$e->getMessage(), 0, $e); } if (null !== $messages && !\is_array($messages)) { throw new InvalidResourceException(sprintf('Unable to load file "%s".', $resource)); } return $messages ?: []; } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
ArrayLoader.php | File | 1.42 KB | 0644 |
|
CsvFileLoader.php | File | 1.75 KB | 0644 |
|
FileLoader.php | File | 1.74 KB | 0644 |
|
IcuDatFileLoader.php | File | 1.84 KB | 0644 |
|
IcuResFileLoader.php | File | 2.81 KB | 0644 |
|
IniFileLoader.php | File | 562 B | 0644 |
|
JsonFileLoader.php | File | 1.54 KB | 0644 |
|
LoaderInterface.php | File | 982 B | 0644 |
|
MoFileLoader.php | File | 4.3 KB | 0644 |
|
PhpFileLoader.php | File | 1.05 KB | 0644 |
|
PoFileLoader.php | File | 5.12 KB | 0644 |
|
QtFileLoader.php | File | 2.84 KB | 0644 |
|
XliffFileLoader.php | File | 8.85 KB | 0644 |
|
YamlFileLoader.php | File | 1.62 KB | 0644 |
|