<?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\Config\Resource\FileResource; use Symfony\Component\Translation\Exception\InvalidResourceException; use Symfony\Component\Translation\Exception\NotFoundResourceException; use Symfony\Component\Translation\MessageCatalogue; /** * @author Abdellatif Ait boudad <a.aitboudad@gmail.com> */ abstract class FileLoader extends ArrayLoader { public function load(mixed $resource, string $locale, string $domain = 'messages'): MessageCatalogue { 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)); } $messages = $this->loadResource($resource); // empty resource $messages ??= []; // not an array if (!\is_array($messages)) { throw new InvalidResourceException(sprintf('Unable to load file "%s".', $resource)); } $catalogue = parent::load($messages, $locale, $domain); if (class_exists(FileResource::class)) { $catalogue->addResource(new FileResource($resource)); } return $catalogue; } /** * @throws InvalidResourceException if stream content has an invalid format */ abstract protected function loadResource(string $resource): array; }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
ArrayLoader.php | File | 1.37 KB | 0644 |
|
CsvFileLoader.php | File | 1.69 KB | 0644 |
|
FileLoader.php | File | 1.68 KB | 0644 |
|
IcuDatFileLoader.php | File | 1.79 KB | 0644 |
|
IcuResFileLoader.php | File | 2.72 KB | 0644 |
|
IniFileLoader.php | File | 537 B | 0644 |
|
JsonFileLoader.php | File | 1.49 KB | 0644 |
|
LoaderInterface.php | File | 950 B | 0644 |
|
MoFileLoader.php | File | 4.17 KB | 0644 |
|
PhpFileLoader.php | File | 1.02 KB | 0644 |
|
PoFileLoader.php | File | 4.98 KB | 0644 |
|
QtFileLoader.php | File | 2.77 KB | 0644 |
|
XliffFileLoader.php | File | 8.62 KB | 0644 |
|
YamlFileLoader.php | File | 1.57 KB | 0644 |
|