From eda4a0a3403f02b25769b841e783362d092fa7b5 Mon Sep 17 00:00:00 2001 From: Guilhem N Date: Sat, 13 Jan 2018 14:18:13 +0100 Subject: [PATCH] Always require phpdocumentor/reflection-docblock (#1186) --- DependencyInjection/NelmioApiDocExtension.php | 22 +++++++------------ .../PhpdocPropertyAnnotationReader.php | 1 - .../SwaggerPropertyAnnotationReader.php | 1 - composer.json | 5 ++--- 4 files changed, 10 insertions(+), 19 deletions(-) diff --git a/DependencyInjection/NelmioApiDocExtension.php b/DependencyInjection/NelmioApiDocExtension.php index b966fb1..01fc733 100644 --- a/DependencyInjection/NelmioApiDocExtension.php +++ b/DependencyInjection/NelmioApiDocExtension.php @@ -17,7 +17,6 @@ use Nelmio\ApiDocBundle\Describer\RouteDescriber; use Nelmio\ApiDocBundle\Describer\SwaggerPhpDescriber; use Nelmio\ApiDocBundle\ModelDescriber\JMSModelDescriber; use Nelmio\ApiDocBundle\Routing\FilteredRouteCollectionBuilder; -use phpDocumentor\Reflection\DocBlockFactory; use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; use Symfony\Component\DependencyInjection\ContainerBuilder; @@ -109,9 +108,8 @@ final class NelmioApiDocExtension extends Extension implements PrependExtensionI )); // Import services needed for each library - if (class_exists(DocBlockFactory::class)) { - $loader->load('php_doc.xml'); - } + $loader->load('php_doc.xml'); + if (interface_exists(ParamInterface::class)) { $loader->load('fos_rest.xml'); } @@ -127,18 +125,14 @@ final class NelmioApiDocExtension extends Extension implements PrependExtensionI // JMS metadata support if ($config['models']['use_jms']) { - $arguments = [ - new Reference('jms_serializer.metadata_factory'), - new Reference('jms_serializer.naming_strategy'), - new Reference('nelmio_api_doc.model_describers.swagger_property_annotation_reader'), - ]; - // phpdocumentor is not a hard requirement, only use if available - if (class_exists(DocBlockFactory::class)) { - $arguments[] = new Reference('nelmio_api_doc.model_describers.phpdoc_property_annotation_reader'); - } $container->register('nelmio_api_doc.model_describers.jms', JMSModelDescriber::class) ->setPublic(false) - ->setArguments($arguments) + ->setArguments([ + new Reference('jms_serializer.metadata_factory'), + new Reference('jms_serializer.naming_strategy'), + new Reference('nelmio_api_doc.model_describers.swagger_property_annotation_reader'), + new Reference('nelmio_api_doc.model_describers.phpdoc_property_annotation_reader'), + ]) ->addTag('nelmio_api_doc.model_describer', ['priority' => 50]); } diff --git a/ModelDescriber/PhpdocPropertyAnnotationReader.php b/ModelDescriber/PhpdocPropertyAnnotationReader.php index 5c4bab3..fd19cef 100644 --- a/ModelDescriber/PhpdocPropertyAnnotationReader.php +++ b/ModelDescriber/PhpdocPropertyAnnotationReader.php @@ -11,7 +11,6 @@ namespace Nelmio\ApiDocBundle\ModelDescriber; -use EXSyst\Component\Swagger\Items; use EXSyst\Component\Swagger\Schema; use phpDocumentor\Reflection\DocBlock\Tags\Var_; use phpDocumentor\Reflection\DocBlockFactory; diff --git a/ModelDescriber/SwaggerPropertyAnnotationReader.php b/ModelDescriber/SwaggerPropertyAnnotationReader.php index 13f4c40..f6f5381 100644 --- a/ModelDescriber/SwaggerPropertyAnnotationReader.php +++ b/ModelDescriber/SwaggerPropertyAnnotationReader.php @@ -12,7 +12,6 @@ namespace Nelmio\ApiDocBundle\ModelDescriber; use Doctrine\Common\Annotations\Reader; -use EXSyst\Component\Swagger\Items; use EXSyst\Component\Swagger\Schema; use Swagger\Annotations\Property as SwgProperty; use const Swagger\Annotations\UNDEFINED; diff --git a/composer.json b/composer.json index 7d90cd6..db4c029 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,8 @@ "symfony/framework-bundle": "^3.4|^4.0", "symfony/property-info": "^3.4|^4.0", "exsyst/swagger": "~0.3", - "zircote/swagger-php": "^2.0.9" + "zircote/swagger-php": "^2.0.9", + "phpdocumentor/reflection-docblock": "^3.1" }, "require-dev": { "symfony/templating": "^3.4|^4.0", @@ -39,13 +40,11 @@ "doctrine/annotations": "^1.2", "doctrine/common": "^2.4", - "phpdocumentor/reflection-docblock": "^3.1", "api-platform/core": "^2.1.0", "friendsofsymfony/rest-bundle": "^2.0", "jms/serializer-bundle": "^2.0" }, "suggest": { - "phpdocumentor/reflection-docblock": "For parsing php docs.", "api-platform/core": "For using an API oriented framework.", "friendsofsymfony/rest-bundle": "For using the parameters annotations." },