![]() 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/job-board.corals.io/vendor/jms/serializer/src/Builder/ |
<?php declare(strict_types=1); namespace JMS\Serializer\Builder; use Doctrine\Common\Annotations\Reader; use JMS\Serializer\Expression\CompilableExpressionEvaluatorInterface; use JMS\Serializer\Metadata\Driver\AnnotationDriver; use JMS\Serializer\Metadata\Driver\AttributeDriver; use JMS\Serializer\Metadata\Driver\DefaultValuePropertyDriver; use JMS\Serializer\Metadata\Driver\TypedPropertiesDriver; use JMS\Serializer\Metadata\Driver\XmlDriver; use JMS\Serializer\Metadata\Driver\YamlDriver; use JMS\Serializer\Naming\PropertyNamingStrategyInterface; use JMS\Serializer\Type\Parser; use JMS\Serializer\Type\ParserInterface; use Metadata\Driver\DriverChain; use Metadata\Driver\DriverInterface; use Metadata\Driver\FileLocator; final class DefaultDriverFactory implements DriverFactoryInterface { /** * @var ParserInterface */ private $typeParser; /** * @var PropertyNamingStrategyInterface */ private $propertyNamingStrategy; /** * @var CompilableExpressionEvaluatorInterface */ private $expressionEvaluator; public function __construct(PropertyNamingStrategyInterface $propertyNamingStrategy, ?ParserInterface $typeParser = null, ?CompilableExpressionEvaluatorInterface $expressionEvaluator = null) { $this->typeParser = $typeParser ?: new Parser(); $this->propertyNamingStrategy = $propertyNamingStrategy; $this->expressionEvaluator = $expressionEvaluator; } public function createDriver(array $metadataDirs, Reader $annotationReader): DriverInterface { if (PHP_VERSION_ID >= 80000) { $annotationReader = new AttributeDriver\AttributeReader($annotationReader); } $driver = new AnnotationDriver($annotationReader, $this->propertyNamingStrategy, $this->typeParser); if (!empty($metadataDirs)) { $fileLocator = new FileLocator($metadataDirs); $driver = new DriverChain([ new YamlDriver($fileLocator, $this->propertyNamingStrategy, $this->typeParser, $this->expressionEvaluator), new XmlDriver($fileLocator, $this->propertyNamingStrategy, $this->typeParser, $this->expressionEvaluator), $driver, ]); } if (PHP_VERSION_ID >= 70400) { $driver = new TypedPropertiesDriver($driver, $this->typeParser); } if (PHP_VERSION_ID >= 80000) { $driver = new DefaultValuePropertyDriver($driver); } return $driver; } }