<?php <?php /* * This file is part of the ApiDocBundle package. * * (c) EXSyst * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace EXSyst\Bundle\ApiDocBundle\Describer; use Doctrine\Common\Util\ClassUtils; use EXSyst\Bundle\ApiDocBundle\RouteDescriber\RouteDescriberInterface; use gossi\swagger\Swagger; use Symfony\Bundle\FrameworkBundle\Controller\ControllerNameParser; use Symfony\Component\Routing\Route; use Symfony\Component\Routing\RouterInterface; class ExternalDocDescriber implements DescriberInterface { private $externalDoc; private $stategy; /** * @param array|callable $externalDoc * @param int $strategy */ public function __construct($externalDoc, $strategy = Swagger::PREFER_ORIGINAL) { $this->externalDoc = $externalDoc; $this->strategy = $strategy; } public function describe(Swagger $api) { $externalDoc = $this->getExternalDoc(); $api->merge($externalDoc, $this->strategy); } private function getExternalDoc(): array { if (is_callable($this->externalDoc)) { return call_user_func($this->externalDoc); } return $this->externalDoc; } }