mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-03-11 18:16:13 +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;
|
||||
|
||||
use FOS\RestBundle\Controller\Annotations\ParamInterface;
|
||||
use Nelmio\ApiDocBundle\ModelDescriber\FormModelDescriber;
|
||||
use Nelmio\ApiDocBundle\ModelDescriber\JMSModelDescriber;
|
||||
use Nelmio\ApiDocBundle\Routing\FilteredRouteCollectionBuilder;
|
||||
use phpDocumentor\Reflection\DocBlockFactory;
|
||||
@ -22,7 +21,6 @@ use Symfony\Component\DependencyInjection\Definition;
|
||||
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
|
||||
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
|
||||
use Symfony\Component\DependencyInjection\Reference;
|
||||
use Symfony\Component\Form\FormInterface;
|
||||
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
|
||||
use Symfony\Component\Routing\RouteCollection;
|
||||
|
||||
@ -52,13 +50,6 @@ final class NelmioApiDocExtension extends Extension implements PrependExtensionI
|
||||
|
||||
$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
|
||||
$routesDefinition = (new Definition(RouteCollection::class))
|
||||
->setFactory([new Reference('router'), 'getRouteCollection']);
|
||||
|
@ -14,6 +14,7 @@ namespace Nelmio\ApiDocBundle;
|
||||
use Nelmio\ApiDocBundle\DependencyInjection\Compiler\AddDescribersPass;
|
||||
use Nelmio\ApiDocBundle\DependencyInjection\Compiler\AddModelDescribersPass;
|
||||
use Nelmio\ApiDocBundle\DependencyInjection\Compiler\AddRouteDescribersPass;
|
||||
use Nelmio\ApiDocBundle\DependencyInjection\Compiler\ConfigurationPass;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||
|
||||
@ -24,6 +25,7 @@ final class NelmioApiDocBundle extends Bundle
|
||||
*/
|
||||
public function build(ContainerBuilder $container)
|
||||
{
|
||||
$container->addCompilerPass(new ConfigurationPass());
|
||||
$container->addCompilerPass(new AddDescribersPass());
|
||||
$container->addCompilerPass(new AddModelDescribersPass());
|
||||
$container->addCompilerPass(new AddRouteDescribersPass());
|
||||
|
Loading…
x
Reference in New Issue
Block a user