View file vendor/symfony/translation/Loader/PhpFileLoader.php

File size: 1.14Kb
  1. <?php
  2.  
  3. /*
  4. * This file is part of the Symfony package.
  5. *
  6. * (c) Fabien Potencier <fabien@symfony.com>
  7. *
  8. * For the full copyright and license information, please view the LICENSE
  9. * file that was distributed with this source code.
  10. */
  11.  
  12. namespace Symfony\Component\Translation\Loader;
  13.  
  14. /**
  15. * PhpFileLoader loads translations from PHP files returning an array of translations.
  16. *
  17. * @author Fabien Potencier <fabien@symfony.com>
  18. */
  19. class PhpFileLoader extends FileLoader
  20. {
  21. private static $cache = [];
  22.  
  23. /**
  24. * {@inheritdoc}
  25. */
  26. protected function loadResource(string $resource)
  27. {
  28. if ([] === self::$cache && \function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), \FILTER_VALIDATE_BOOLEAN) && (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) || filter_var(ini_get('opcache.enable_cli'), \FILTER_VALIDATE_BOOLEAN))) {
  29. self::$cache = null;
  30. }
  31.  
  32. if (null === self::$cache) {
  33. return require $resource;
  34. }
  35.  
  36. if (isset(self::$cache[$resource])) {
  37. return self::$cache[$resource];
  38. }
  39.  
  40. return self::$cache[$resource] = require $resource;
  41. }
  42. }