BundleEntryReaderInterface.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /*
  3. * This file is part of the Symfony package.
  4. *
  5. * (c) Fabien Potencier <fabien@symfony.com>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Symfony\Component\Intl\Data\Bundle\Reader;
  11. use Symfony\Component\Intl\Exception\MissingResourceException;
  12. /**
  13. * Reads individual entries of a resource file.
  14. *
  15. * @author Bernhard Schussek <bschussek@gmail.com>
  16. *
  17. * @internal
  18. */
  19. interface BundleEntryReaderInterface extends BundleReaderInterface
  20. {
  21. /**
  22. * Reads an entry from a resource bundle.
  23. *
  24. * An entry can be selected from the resource bundle by passing the path
  25. * to that entry in the bundle. For example, if the bundle is structured
  26. * like this:
  27. *
  28. * TopLevel
  29. * NestedLevel
  30. * Entry: Value
  31. *
  32. * Then the value can be read by calling:
  33. *
  34. * $reader->readEntry('...', 'en', ['TopLevel', 'NestedLevel', 'Entry']);
  35. *
  36. * @param string $path The path to the resource bundle
  37. * @param string[] $indices The indices to read from the bundle
  38. * @param bool $fallback Whether to merge the value with the value from
  39. * the fallback locale (e.g. "en" for "en_GB").
  40. * Only applicable if the result is multivalued
  41. * (i.e. array or \ArrayAccess) or cannot be found
  42. * in the requested locale.
  43. *
  44. * @return mixed returns an array or {@link \ArrayAccess} instance for
  45. * complex data and a scalar value for simple data
  46. *
  47. * @throws MissingResourceException If the indices cannot be accessed
  48. */
  49. public function readEntry(string $path, string $locale, array $indices, bool $fallback = true);
  50. }