D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
psa
/
admin
/
plib
/
vendor
/
jms
/
serializer
/
src
/
Builder
/
Filename :
CallbackDriverFactory.php
back
Copy
<?php declare(strict_types=1); namespace JMS\Serializer\Builder; use Doctrine\Common\Annotations\Reader; use JMS\Serializer\Exception\LogicException; use Metadata\Driver\DriverInterface; final class CallbackDriverFactory implements DriverFactoryInterface { /** * @var callable * @phpstan-var callable(array $metadataDirs, Reader|null $reader): DriverInterface */ private $callback; /** * @phpstan-param callable(array $metadataDirs, Reader|null $reader): DriverInterface $callable */ public function __construct(callable $callable) { $this->callback = $callable; } public function createDriver(array $metadataDirs, ?Reader $reader = null): DriverInterface { $driver = \call_user_func($this->callback, $metadataDirs, $reader); if (!$driver instanceof DriverInterface) { throw new LogicException('The callback must return an instance of DriverInterface.'); } return $driver; } }