![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/vendor/jms/serializer-bundle/Debug/ |
<?php declare(strict_types=1); namespace JMS\SerializerBundle\Debug; use Metadata\AdvancedMetadataFactoryInterface; use Metadata\ClassHierarchyMetadata; use Metadata\ClassMetadata; use Metadata\MergeableClassMetadata; /** * @internal */ final class TraceableMetadataFactory implements AdvancedMetadataFactoryInterface { private $storage = []; /** * @var AdvancedMetadataFactoryInterface */ private $metadataFactory; public function __construct(AdvancedMetadataFactoryInterface $metadataFactory) { $this->metadataFactory = $metadataFactory; } public function getLoadedMetadata(): array { return $this->storage; } public function getAllClassNames(): array { return $this->metadataFactory->getAllClassNames(); } /** * @return ClassHierarchyMetadata|MergeableClassMetadata|null */ public function getMetadataForClass(string $className) { $metadata = $this->metadataFactory->getMetadataForClass($className); if ($metadata instanceof ClassMetadata) { $this->trackMetadata($metadata); } return $metadata; } protected function trackMetadata(ClassMetadata $metadata): void { $class = $metadata->name; $this->storage[$class] = array_merge( $this->storage[$class] ?? [], $metadata->fileResources ); $this->storage[$class] = array_unique($this->storage[$class]); } }