mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-03-12 02:26:09 +03:00
Enable the FormModelDescriber only if forms are enabled (#1154)
* Enable the FormModelDescriber only if forms are enabled * Add a comment
This commit is contained in:
parent
f03e33f551
commit
893a7ad518
35
DependencyInjection/Compiler/ConfigurationPass.php
Normal file
35
DependencyInjection/Compiler/ConfigurationPass.php
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the NelmioApiDocBundle package.
|
||||||
|
*
|
||||||
|
* (c) Nelmio
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Nelmio\ApiDocBundle\DependencyInjection\Compiler;
|
||||||
|
|
||||||
|
use Nelmio\ApiDocBundle\ModelDescriber\FormModelDescriber;
|
||||||
|
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
|
||||||
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
|
use Symfony\Component\DependencyInjection\Reference;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enables the FormModelDescriber only if forms are enabled.
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
final class ConfigurationPass implements CompilerPassInterface
|
||||||
|
{
|
||||||
|
public function process(ContainerBuilder $container)
|
||||||
|
{
|
||||||
|
if ($container->hasDefinition('form.factory')) {
|
||||||
|
$container->register('nelmio_api_doc.model_describers.form', FormModelDescriber::class)
|
||||||
|
->setPublic(false)
|
||||||
|
->addArgument(new Reference('form.factory'))
|
||||||
|
->addTag('nelmio_api_doc.model_describer', ['priority' => 100]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -12,7 +12,6 @@
|
|||||||
namespace Nelmio\ApiDocBundle\DependencyInjection;
|
namespace Nelmio\ApiDocBundle\DependencyInjection;
|
||||||
|
|
||||||
use FOS\RestBundle\Controller\Annotations\ParamInterface;
|
use FOS\RestBundle\Controller\Annotations\ParamInterface;
|
||||||
use Nelmio\ApiDocBundle\ModelDescriber\FormModelDescriber;
|
|
||||||
use Nelmio\ApiDocBundle\ModelDescriber\JMSModelDescriber;
|
use Nelmio\ApiDocBundle\ModelDescriber\JMSModelDescriber;
|
||||||
use Nelmio\ApiDocBundle\Routing\FilteredRouteCollectionBuilder;
|
use Nelmio\ApiDocBundle\Routing\FilteredRouteCollectionBuilder;
|
||||||
use phpDocumentor\Reflection\DocBlockFactory;
|
use phpDocumentor\Reflection\DocBlockFactory;
|
||||||
@ -22,7 +21,6 @@ use Symfony\Component\DependencyInjection\Definition;
|
|||||||
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
|
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
|
||||||
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
|
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
|
||||||
use Symfony\Component\DependencyInjection\Reference;
|
use Symfony\Component\DependencyInjection\Reference;
|
||||||
use Symfony\Component\Form\FormInterface;
|
|
||||||
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
|
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
|
||||||
use Symfony\Component\Routing\RouteCollection;
|
use Symfony\Component\Routing\RouteCollection;
|
||||||
|
|
||||||
@ -52,13 +50,6 @@ final class NelmioApiDocExtension extends Extension implements PrependExtensionI
|
|||||||
|
|
||||||
$loader->load('services.xml');
|
$loader->load('services.xml');
|
||||||
|
|
||||||
if (interface_exists(FormInterface::class)) {
|
|
||||||
$container->register('nelmio_api_doc.model_describers.form', FormModelDescriber::class)
|
|
||||||
->setPublic(false)
|
|
||||||
->addArgument(new Reference('form.factory'))
|
|
||||||
->addTag('nelmio_api_doc.model_describer', ['priority' => 100]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Filter routes
|
// Filter routes
|
||||||
$routesDefinition = (new Definition(RouteCollection::class))
|
$routesDefinition = (new Definition(RouteCollection::class))
|
||||||
->setFactory([new Reference('router'), 'getRouteCollection']);
|
->setFactory([new Reference('router'), 'getRouteCollection']);
|
||||||
|
@ -14,6 +14,7 @@ namespace Nelmio\ApiDocBundle;
|
|||||||
use Nelmio\ApiDocBundle\DependencyInjection\Compiler\AddDescribersPass;
|
use Nelmio\ApiDocBundle\DependencyInjection\Compiler\AddDescribersPass;
|
||||||
use Nelmio\ApiDocBundle\DependencyInjection\Compiler\AddModelDescribersPass;
|
use Nelmio\ApiDocBundle\DependencyInjection\Compiler\AddModelDescribersPass;
|
||||||
use Nelmio\ApiDocBundle\DependencyInjection\Compiler\AddRouteDescribersPass;
|
use Nelmio\ApiDocBundle\DependencyInjection\Compiler\AddRouteDescribersPass;
|
||||||
|
use Nelmio\ApiDocBundle\DependencyInjection\Compiler\ConfigurationPass;
|
||||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
use Symfony\Component\HttpKernel\Bundle\Bundle;
|
use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||||
|
|
||||||
@ -24,6 +25,7 @@ final class NelmioApiDocBundle extends Bundle
|
|||||||
*/
|
*/
|
||||||
public function build(ContainerBuilder $container)
|
public function build(ContainerBuilder $container)
|
||||||
{
|
{
|
||||||
|
$container->addCompilerPass(new ConfigurationPass());
|
||||||
$container->addCompilerPass(new AddDescribersPass());
|
$container->addCompilerPass(new AddDescribersPass());
|
||||||
$container->addCompilerPass(new AddModelDescribersPass());
|
$container->addCompilerPass(new AddModelDescribersPass());
|
||||||
$container->addCompilerPass(new AddRouteDescribersPass());
|
$container->addCompilerPass(new AddRouteDescribersPass());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user