From eb77f3708c2e17c7b6808e100f91bcea2ce3f737 Mon Sep 17 00:00:00 2001 From: Guilhem Niot Date: Thu, 4 Jan 2018 11:34:23 +0100 Subject: [PATCH] Cleanup --- ApiDocGenerator.php | 6 +- .../Compiler/AddDescribersPass.php | 1 + .../Compiler/AddModelDescribersPass.php | 1 + .../Compiler/AddRouteDescribersPass.php | 1 + .../Compiler/PriorityTaggedServiceTrait.php | 57 ------------------- Describer/RouteDescriber.php | 8 +-- Model/ModelRegistry.php | 4 +- ModelDescriber/JMSModelDescriber.php | 3 +- Tests/Functional/Controller/JMSController.php | 2 +- Tests/Functional/Entity/JMSComplex.php | 18 +++--- Tests/Functional/JMSFunctionalTest.php | 2 +- composer.json | 33 ++++++----- 12 files changed, 39 insertions(+), 97 deletions(-) delete mode 100644 DependencyInjection/Compiler/PriorityTaggedServiceTrait.php diff --git a/ApiDocGenerator.php b/ApiDocGenerator.php index 36704d5..822e8c1 100644 --- a/ApiDocGenerator.php +++ b/ApiDocGenerator.php @@ -29,10 +29,10 @@ final class ApiDocGenerator private $cacheItemPool; /** - * @param DescriberInterface[] $describers - * @param ModelDescriberInterface[] $modelDescribers + * @param DescriberInterface[]|iterable $describers + * @param ModelDescriberInterface[]|iterable $modelDescribers */ - public function __construct(array $describers, array $modelDescribers, CacheItemPoolInterface $cacheItemPool = null) + public function __construct($describers, $modelDescribers, CacheItemPoolInterface $cacheItemPool = null) { $this->describers = $describers; $this->modelDescribers = $modelDescribers; diff --git a/DependencyInjection/Compiler/AddDescribersPass.php b/DependencyInjection/Compiler/AddDescribersPass.php index 0849b1c..ad2203b 100644 --- a/DependencyInjection/Compiler/AddDescribersPass.php +++ b/DependencyInjection/Compiler/AddDescribersPass.php @@ -12,6 +12,7 @@ namespace Nelmio\ApiDocBundle\DependencyInjection\Compiler; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use Symfony\Component\DependencyInjection\Compiler\PriorityTaggedServiceTrait; use Symfony\Component\DependencyInjection\ContainerBuilder; /** diff --git a/DependencyInjection/Compiler/AddModelDescribersPass.php b/DependencyInjection/Compiler/AddModelDescribersPass.php index 5a4c84c..18094d4 100644 --- a/DependencyInjection/Compiler/AddModelDescribersPass.php +++ b/DependencyInjection/Compiler/AddModelDescribersPass.php @@ -12,6 +12,7 @@ namespace Nelmio\ApiDocBundle\DependencyInjection\Compiler; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use Symfony\Component\DependencyInjection\Compiler\PriorityTaggedServiceTrait; use Symfony\Component\DependencyInjection\ContainerBuilder; /** diff --git a/DependencyInjection/Compiler/AddRouteDescribersPass.php b/DependencyInjection/Compiler/AddRouteDescribersPass.php index 35e0867..f29c59a 100644 --- a/DependencyInjection/Compiler/AddRouteDescribersPass.php +++ b/DependencyInjection/Compiler/AddRouteDescribersPass.php @@ -12,6 +12,7 @@ namespace Nelmio\ApiDocBundle\DependencyInjection\Compiler; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use Symfony\Component\DependencyInjection\Compiler\PriorityTaggedServiceTrait; use Symfony\Component\DependencyInjection\ContainerBuilder; /** diff --git a/DependencyInjection/Compiler/PriorityTaggedServiceTrait.php b/DependencyInjection/Compiler/PriorityTaggedServiceTrait.php deleted file mode 100644 index 1bf31f7..0000000 --- a/DependencyInjection/Compiler/PriorityTaggedServiceTrait.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * @internal extracted from Symfony, to keep sf 2.8 support. - */ -trait PriorityTaggedServiceTrait -{ - /** - * Finds all services with the given tag name and order them by their priority. - * - * The order of additions must be respected for services having the same priority, - * and knowing that the \SplPriorityQueue class does not respect the FIFO method, - * we should not use this class. - * - * @see https://bugs.php.net/bug.php?id=53710 - * @see https://bugs.php.net/bug.php?id=60926 - * - * @param string $tagName - * @param ContainerBuilder $container - * - * @return Reference[] - */ - private function findAndSortTaggedServices($tagName, ContainerBuilder $container) - { - $services = []; - foreach ($container->findTaggedServiceIds($tagName) as $serviceId => $tags) { - foreach ($tags as $attributes) { - $priority = isset($attributes['priority']) ? $attributes['priority'] : 0; - $services[$priority][] = new Reference($serviceId); - } - } - if ($services) { - krsort($services); - $services = call_user_func_array('array_merge', $services); - } - - return $services; - } -} diff --git a/Describer/RouteDescriber.php b/Describer/RouteDescriber.php index ff5754e..b0cc7d0 100644 --- a/Describer/RouteDescriber.php +++ b/Describer/RouteDescriber.php @@ -28,11 +28,11 @@ final class RouteDescriber implements DescriberInterface, ModelRegistryAwareInte private $routeDescribers; /** - * @param RouteCollection $routeCollection - * @param ControllerReflector $controllerReflector - * @param RouteDescriberInterface[] $routeDescribers + * @param RouteCollection $routeCollection + * @param ControllerReflector $controllerReflector + * @param RouteDescriberInterface[]|iterable $routeDescribers */ - public function __construct(RouteCollection $routeCollection, ControllerReflector $controllerReflector, array $routeDescribers) + public function __construct(RouteCollection $routeCollection, ControllerReflector $controllerReflector, $routeDescribers) { $this->routeCollection = $routeCollection; $this->controllerReflector = $controllerReflector; diff --git a/Model/ModelRegistry.php b/Model/ModelRegistry.php index af326e0..9d9d741 100644 --- a/Model/ModelRegistry.php +++ b/Model/ModelRegistry.php @@ -30,11 +30,11 @@ final class ModelRegistry private $api; /** - * @param ModelDescriberInterface[] $modelDescribers + * @param ModelDescriberInterface[]|iterable $modelDescribers * * @internal */ - public function __construct(array $modelDescribers, Swagger $api) + public function __construct($modelDescribers, Swagger $api) { $this->modelDescribers = $modelDescribers; $this->api = $api; diff --git a/ModelDescriber/JMSModelDescriber.php b/ModelDescriber/JMSModelDescriber.php index 42d28a7..a418779 100644 --- a/ModelDescriber/JMSModelDescriber.php +++ b/ModelDescriber/JMSModelDescriber.php @@ -100,13 +100,12 @@ class JMSModelDescriber implements ModelDescriberInterface, ModelRegistryAwareIn continue; } - if(!array_key_exists($name, $model->getGroups()) || !is_array($model->getGroups()[$name])) { + if (!isset($model->getGroups()[$name]) || !is_array($model->getGroups()[$name])) { $groups = $model->getGroups(); } else { $groups = $model->getGroups()[$name]; } - $property->setRef( $this->modelRegistry->register(new Model(new Type(Type::BUILTIN_TYPE_OBJECT, false, $type), $groups)) ); diff --git a/Tests/Functional/Controller/JMSController.php b/Tests/Functional/Controller/JMSController.php index 94bf5d8..468ba76 100644 --- a/Tests/Functional/Controller/JMSController.php +++ b/Tests/Functional/Controller/JMSController.php @@ -12,8 +12,8 @@ namespace Nelmio\ApiDocBundle\Tests\Functional\Controller; use Nelmio\ApiDocBundle\Annotation\Model; -use Nelmio\ApiDocBundle\Tests\Functional\Entity\JMSUser; use Nelmio\ApiDocBundle\Tests\Functional\Entity\JMSComplex; +use Nelmio\ApiDocBundle\Tests\Functional\Entity\JMSUser; use Nelmio\ApiDocBundle\Tests\Functional\Entity\VirtualProperty; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Swagger\Annotations as SWG; diff --git a/Tests/Functional/Entity/JMSComplex.php b/Tests/Functional/Entity/JMSComplex.php index 3cb6006..9f308e4 100644 --- a/Tests/Functional/Entity/JMSComplex.php +++ b/Tests/Functional/Entity/JMSComplex.php @@ -1,9 +1,12 @@ [ 'id' => ['type' => 'integer'], 'user' => ['$ref' => '#/definitions/JMSUser2'], - 'name' => ['type' => 'string'] + 'name' => ['type' => 'string'], ], ], $this->getModel('JMSComplex')->toArray()); diff --git a/composer.json b/composer.json index de9cc69..17855e1 100644 --- a/composer.json +++ b/composer.json @@ -16,27 +16,26 @@ ], "require": { "php": "^7.0", - "symfony/framework-bundle": "^3.2.5|^4.0", - "symfony/property-info": "^3.1|^4.0", + "symfony/framework-bundle": "^3.4|^4.0", + "symfony/property-info": "^3.4|^4.0", "exsyst/swagger": "~0.3", "zircote/swagger-php": "^2.0.9" }, "require-dev": { - "symfony/templating": "^2.8|^3.0|^4.0", - "symfony/twig-bundle": "^3.0|^4.0", - "symfony/asset": "^2.8|^3.0|^4.0", - "symfony/console": "^2.8|^3.0|^4.0", - "symfony/config": "^2.8|^3.0|^4.0", - "symfony/validator": "^2.8|^3.0|^4.0", - "symfony/property-access": "^2.8|^3.0|^4.0", - "symfony/form": "^3.0.8|^4.0", - "symfony/dom-crawler": "^2.8|^3.0|^4.0", - "symfony/browser-kit": "^2.8|^3.0|^4.0", - "symfony/cache": "^3.1|^4.0", - "symfony/phpunit-bridge": "^3.3", - "symfony/stopwatch": "^2.8|^3.0|^4.0", + "symfony/templating": "^3.4|^4.0", + "symfony/twig-bundle": "^3.4|^4.0", + "symfony/asset": "^3.4|^4.0", + "symfony/console": "^3.4|^4.0", + "symfony/config": "^3.4|^4.0", + "symfony/validator": "^3.4|^4.0", + "symfony/property-access": "^3.4|^4.0", + "symfony/form": "^3.4|^4.0", + "symfony/dom-crawler": "^3.4|^4.0", + "symfony/browser-kit": "^3.4|^4.0", + "symfony/cache": "^3.4|^4.0", + "symfony/phpunit-bridge": "^3.4", + "symfony/stopwatch": "^3.4|^4.0", "sensio/framework-extra-bundle": "^3.0", - "symfony/stopwatch": "^2.8|^3.0|^4.0", "doctrine/annotations": "^1.2", "phpdocumentor/reflection-docblock": "^3.1", @@ -56,7 +55,7 @@ }, "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "3.1.x-dev" } } }