vendor/symfony/config/Resource/SelfCheckingResourceChecker.php line 44

Open in your IDE?
  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\Config\Resource;
  11. use Symfony\Component\Config\ResourceCheckerInterface;
  12. /**
  13.  * Resource checker for instances of SelfCheckingResourceInterface.
  14.  *
  15.  * As these resources perform the actual check themselves, we can provide
  16.  * this class as a standard way of validating them.
  17.  *
  18.  * @author Matthias Pigulla <mp@webfactory.de>
  19.  */
  20. class SelfCheckingResourceChecker implements ResourceCheckerInterface
  21. {
  22.     // Common shared cache, because this checker can be used in different
  23.     // situations. For example, when using the full stack framework, the router
  24.     // and the container have their own cache. But they may check the very same
  25.     // resources
  26.     private static array $cache = [];
  27.     public function supports(ResourceInterface $metadata): bool
  28.     {
  29.         return $metadata instanceof SelfCheckingResourceInterface;
  30.     }
  31.     /**
  32.      * @param SelfCheckingResourceInterface $resource
  33.      */
  34.     public function isFresh(ResourceInterface $resourceint $timestamp): bool
  35.     {
  36.         $key "$resource:$timestamp";
  37.         return self::$cache[$key] ?? self::$cache[$key] = $resource->isFresh($timestamp);
  38.     }
  39. }