1<?php 2 3declare(strict_types=1); 4 5namespace Metadata\Driver; 6 7use Metadata\ClassMetadata; 8use Symfony\Component\DependencyInjection\ContainerInterface; 9 10class LazyLoadingDriver implements DriverInterface 11{ 12 /** 13 * @var ContainerInterface 14 */ 15 private $container; 16 17 /** 18 * @var string 19 */ 20 private $realDriverId; 21 22 public function __construct(ContainerInterface $container, string $realDriverId) 23 { 24 $this->container = $container; 25 $this->realDriverId = $realDriverId; 26 } 27 28 /** 29 * {@inheritDoc} 30 */ 31 public function loadMetadataForClass(\ReflectionClass $class): ?ClassMetadata 32 { 33 return $this->container->get($this->realDriverId)->loadMetadataForClass($class); 34 } 35} 36