8000 Cache warmup issues while migrating from 3.x to 4.x · Issue #26778 · symfony/symfony · GitHub
[go: up one dir, main page]

Skip to content
8000

Cache warmup issues while migrating from 3.x to 4.x #26778

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
phansys opened this issue Apr 3, 2018 · 10 comments
Closed

Cache warmup issues while migrating from 3.x to 4.x #26778

phansys opened this issue Apr 3, 2018 · 10 comments

Comments

@phansys
Copy link
Contributor
phansys commented Apr 3, 2018
Q A
Bug report? yes
Feature request? no
BC Break report? no
RFC? no
Symfony version 4.0.6

I'm migrating an existing 3.x based project to 4.x. I have also updated the directory structure to make it compatible with Flex and started using environment variables instead static parameters, but I'm having some issues that were not present over 3.x. I understand these issues can be also caused by another dependency not directly related with any of symfony/* components, but this specific issue seems really weird for me.
I'm using SonataAdminBundle and I have a trait responsible to expose a method called setAuthorizationChecker() (which receives an instance of AuthorizationCheckerInterface). This trait is used by some of the admins I have configured:

namespace App\Admin;

use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;

trait SecurityCheckerAdminTrait
{
    /**
     * @var AuthorizationCheckerInterface
     */
    private $authorizationChecker;

    /**
     * @param AuthorizationCheckerInterface $authorizationChecker
     */
    public function setAuthorizationChecker(AuthorizationCheckerInterface $authorizationChecker): void
    {
        $this->authorizationChecker = $authorizationChecker;
    }
}
namespace App\Admin;

use Sonata\AdminBundle\Admin\AbstractAdmin;

class UserAdmin extends AbstractAdmin
{
    use SecurityCheckerAdminTrait;
}
# config/admin.yml (imported via "imports" from "config/services.yaml"

admin.user:
    class: App\Admin\UserAdmin
    arguments: [~, App\Entity\User, ~]
    calls:
        - [setAuthorizationChecker, ['@security.authorization_checker']]
    tags:
        - { name: sonata.admin, manager_type: orm, group: customer, label: admin.user }

The weird part comes when I try to execute cache:clear command:

PHP Fatal error:  Uncaught Symfony\Component\Debug\Exception\UndefinedMethodException: Attempted to call an undefined method named "setAuthorizationChecker" of class "App\Admin\UserAdmin". in /var/www/html/app/var/cache/local/ContainerNb6MoTM/srcLocalDebugProjectContainer.php:1542

I've edited the cached container in order to debug this issue, but I have no clue about how it is caused, since the used trait is present at output of class_uses(), but method_exists() and is_callable() calls return false (which is consistent with the thrown exception):

// srcLocalDebugProjectContainer.php

var_dump(get_class($instance)); // outputs: string(19) "App\Admin\UserAdmin"
var_dump(class_uses($instance)); // outputs: array(1) { ["App\Admin\SecurityCheckerAdminTrait"]=>  string(35) "App\Admin\SecurityCheckerAdminTrait" }
var_dump(method_exists($instance, 'setAuthorizationChecker')); // outputs: bool(false)
var_dump(is_callable([$instance, 'setAuthorizationChecker'])); // outputs: bool(false)
var_dump(method_exists('App\Admin\SecurityCheckerAdminTrait', 'setAuthorizationChecker')); // outputs: bool(true)
$instance->setAuthorizationChecker($o); // Raises the exception

As I mentioned before, I'm not sure if this issue comes from Symfony itself, but I have found other problems too (like lazy services trying to be instantiated while cache warmup, when there was no attempt in 3.x).

Any help is welcome, thank you in advance.

@xabbuh
Copy link
Member
xabbuh commented Apr 3, 2018
8000

Are you able to create a small example application that allows to reproduce your issue?

@phansys
Copy link
Contributor Author
phansys commented Apr 3, 2018

I'll try 👍

@nicolas-grekas
Copy link
Member

Maybe you have another file that declares App\Admin\UserAdmin with a different implementation?
Maybe you didn't clear opcache/PHP-FPM and a legacy opcode is served?
I really doubt this is anything related to Symfony...

@phansys
Copy link
Contributor Author
phansys commented Apr 4, 2018

That's why I'm telling this scenario seems weird to me. My app isn't implementing App\Admin\UserAdmin twice, but I don't know if there is some magic in Sonata\AdminBundle\Route\AdminPoolLoader, since I hadn't enough time to debug this. Regarding opcode, I'll check disabling opcache completely today and I'll be back with feedback. Since I'm not able to identify where this issue comes from, I can't create a small app reproducing the problem yet.
Thank you again.

@phansys
Copy link
Contributor Author
phansys commented Apr 4, 2018

As a side note, PHP-FPM has nothing to do with this issue, since I'm facing it executing bin/console cache:clear.

@nicolas-grekas
Copy link
Member

maybe you can echo new \ReflectionClass(UserAdmin::class) and check the output if anything suspicious is there?

@phansys
Copy link
Contributor Author
phansys commented Apr 4, 2018

I did it before, and the results were consistent with the checks, but seems I've omitted some important detail there:

$refl = new \ReflectionObject($instance);
var_dump($refl->getTraits()); // outputs: array(1) {["App\Admin\SecurityCheckerAdminTrait"]=>object(ReflectionClass)#3842 (1) {["name"]=>string(35) "App\Admin\SecurityCheckerAdminTrait"}}

While var_dump($refl->getMethod('setAuthorizationChecker')); gives me this stack trace:

In FileLoader.php line 168:
                                                                                                                                                                                                              
  [Symfony\Component\Config\Exception\FileLoaderLoadException]                                                                                                                                                
  Method setAuthorizationChecker does not exist in . (which is being imported from "/var/www/html/app/config/routes/sonata_admin.yml"). Make sure there is a loader supporting the "sonata_admin" type.  
                                                                                                                                                                                                              

Exception trace:
 Symfony\Component\Config\Loader\FileLoader->doImport() at /var/www/html/app/vendor/symfony/config/Loader/FileLoader.php:90
 Symfony\Component\Config\Loader\FileLoader->import() at /var/www/html/app/vendor/symfony/routing/Loader/YamlFileLoader.php:153
 Symfony\Component\Routing\Loader\YamlFileLoader->parseImport() at /var/www/html/app/vendor/symfony/routing/Loader/YamlFileLoader.php:83
 Symfony\Component\Routing\Loader\YamlFileLoader->load() at /var/www/html/app/vendor/symfony/config/Loader/FileLoader.php:153
 Symfony\Component\Config\Loader\FileLoader->doImport() at /var/www/html/app/vendor/symfony/config/Loader/FileLoader.php:90
 Symfony\Component\Config\Loader\FileLoader->import() at /var/www/html/app/vendor/symfony/routing/Loader/GlobFileLoader.php:32
 Symfony\Component\Routing\Loader\GlobFileLoader->load() at /var/www/html/app/vendor/symfony/routing/RouteCollectionBuilder.php:374
 Symfony\Component\Routing\RouteCollectionBuilder->load() at /var/www/html/app/vendor/symfony/routing/RouteCollectionBuilder.php:62
 Symfony\Component\Routing\RouteCollectionBuilder->import() at /var/www/html/app/src/Kernel.php:65
 appBundle\Kernel->configureRoutes() at /var/www/html/app/vendor/symfony/framework-bundle/Kernel/MicroKernelTrait.php:92
 appBundle\K
8000
ernel->loadRoutes() at n/a:n/a
 call_user_func() at /var/www/html/app/vendor/symfony/routing/Loader/ObjectRouteLoader.php:65
 Symfony\Component\Routing\Loader\ObjectRouteLoader->load() at /var/www/html/app/vendor/symfony/config/Loader/DelegatingLoader.php:40
 Symfony\Component\Config\Loader\DelegatingLoader->load() at /var/www/html/app/vendor/symfony/framework-bundle/Routing/DelegatingLoader.php:70
 Symfony\Bundle\FrameworkBundle\Routing\DelegatingLoader->load() at /var/www/html/app/vendor/symfony/framework-bundle/Routing/Router.php:56
 Symfony\Bundle\FrameworkBundle\Routing\Router->getRouteCollection() at /var/www/html/app/vendor/symfony/routing/Router.php:363
 Symfony\Component\Routing\Router->getGeneratorDumperInstance() at /var/www/html/app/vendor/symfony/routing/Router.php:328
 Symfony\Component\Routing\Router->Symfony\Component\Routing\{closure}() at n/a:n/a
 call_user_func() at /var/www/html/app/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php:43
 Symfony\Component\Config\ResourceCheckerConfigCacheFactory->cache() at /var/www/html/app/vendor/symfony/routing/Router.php:336
 Symfony\Component\Routing\Router->getGenerator() at /var/www/html/app/vendor/symfony/routing/Router.php:240
 Symfony\Component\Routing\Router->generate() at /var/www/html/app/var/cache/local/ContainerCwPnI1k/srcLocalDebugProjectContainer.php:5436
 ContainerCwPnI1k\srcLocalDebugProjectContainer->getDebug_FileLinkFormatterService() at /var/www/html/app/var/cache/local/ContainerCwPnI1k/srcLocalDebugProjectContainer.php:5426
 ContainerCwPnI1k\srcLocalDebugProjectContainer->getDebug_DebugHandlersListenerService() at /var/www/html/app/var/cache/local/ContainerCwPnI1k/srcLocalDebugProjectContainer.php:4080
 ContainerCwPnI1k\srcLocalDebugProjectContainer->ContainerCwPnI1k\{closure}() at /var/www/html/app/vendor/symfony/event-dispatcher/EventDispatcher.php:229
 Symfony\Component\EventDispatcher\EventDispatcher->sortListeners() at /var/www/html/app/vendor/symfony/event-dispatcher/EventDispatcher.php:61
 Symfony\Component\EventDispatcher\EventDispatcher->getListeners() at /var/www/html/app/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:250
 Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->preProcess() at /var/www/html/app/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:134
 Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch() at /var/www/html/app/vendor/symfony/console/Application.php:880
 Symfony\Component\Console\Application->doRunCommand() at /var/www/html/app/vendor/symfony/framework-bundle/Console/Application.php:86
 Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand() at /var/www/html/app/vendor/symfony/console/Application.php:241
 Symfony\Component\Console\Application->doRun() at /var/www/html/app/vendor/symfony/framework-bundle/Console/Application.php:74
 Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /var/www/html/app/vendor/symfony/console/Application.php:143
 Symfony\Component\Console\Application->run() at /var/www/html/app/bin/console:39

Note that I'm importing routes as described in 1.6. Define routes.

@nicolas-grekas
Copy link
Member
nicolas-grekas commented Apr 4, 2018

I really mean echo $refl, not var_dump() of its details. This should provide all info at once.

@phansys
Copy link
Contributor Author
phansys commented Apr 4, 2018

Here is the output, where setAuthorizationChecker() isn't present at all:

/**
 * @author Javier Spagnoletti <phansys@gmail.com>
 */
Object of class [ <user> class App\Admin\UserAdmin extends Sonata\AdminBundle\Admin\AbstractAdmin implements Sonata\AdminBundle\Admin\AdminTreeInterface, Symfony\Component\Security\Acl\Model\DomainObjectInterface, Sonata\AdminBundle\Admin\AccessRegistryInterface, Sonata\AdminBundle\Admin\FieldDescriptionRegistryInterface, Sonata\AdminBundle\Admin\LifecycleHookProviderInterface, Sonata\AdminBundle\Admin\MenuBuilderInterface, Sonata\AdminBundle\Admin\ParentAdminInterface, Sonata\AdminBundle\Admin\UrlGeneratorInterface, Sonata\AdminBundle\Admin\AdminInterface ] {
  @@ /var/www/html/app/src/Admin/UserAdmin.php 61-1053

  - Constants [4] {
    Constant [ public string CONTEXT_MENU ] { menu }
    Constant [ public string CONTEXT_DASHBOARD ] { dashboard }
    Constant [ public string CLASS_REGEX ] { @
        (?:([A-Za-z0-9]*)\\)?        # vendor name / app name
        (Bundle\\)?                  # optional bundle directory
        ([A-Za-z0-9]+?)(?:Bundle)?\\ # bundle name, with optional suffix
        (
            Entity|Document|Model|PHPCR|CouchDocument|Phpcr|
            Doctrine\\Orm|Doctrine\\Phpcr|Doctrine\\MongoDB|Doctrine\\CouchDB
        )\\(.*)@x }
    Constant [ public string MOSAIC_ICON_CLASS ] { fa fa-th-large fa-fw }
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [55] {
    Property [ <default> protected $datagridValues ]
    Property [ <default> protected $searchResultActions ]
    Property [ <default> protected $listFieldDescriptions ]
    Property [ <default> protected $showFieldDescriptions ]
    Property [ <default> protected $formFieldDescriptions ]
    Property [ <default> protected $filterFieldDescriptions ]
    Property [ <default> protected $maxPerPage ]
    Property [ <default> protected $maxPageLinks ]
    Property [ <default> protected $baseRouteName ]
    Property [ <default> protected $baseRoutePattern ]
    Property [ <default> protected $baseControllerName ]
    Property [ <default> protected $classnameLabel ]
    Property [ <default> protected $translationDomain ]
    Property [ <default> protected $formOptions ]
    Property [ <default> protected $perPageOptions ]
    Property [ <default> protected $pagerType ]
    Property [ <default> protected $code ]
    Property [ <default> protected $label ]
    Property [ <default> protected $persistFilters ]
    Property [ <default> protected $routes ]
    Property [ <default> protected $subject ]
    Property [ <default> protected $children ]
    Property [ <default> protected $parent ]
    Property [ <default> protected $baseCodeRoute ]
    Property [ <default> protected $parentAssociationMapping ]
    Property [ <default> protected $parentFieldDescription ]
    Property [ <default> protected $currentChild ]
    Property [ <default> protected $uniqid ]
    Property [ <default> protected $modelManager ]
    Property [ <default> protected $request ]
    Property [ <default> protected $translator ]
    Property [ <default> protected $formContractor ]
    Property [ <default> protected $listBuilder ]
    Property [ <default> protected $showBuilder ]
    Property [ <default> protected $datagridBuilder ]
    Property [ <default> protected $routeBuilder ]
    Property [ <default> protected $datagrid ]
    Property [ <default> protected $routeGenerator ]
    Property [ <default> protected $breadcrumbs ]
    Property [ <default> protected $securityHandler ]
    Property [ <default> protected $validator ]
    Property [ <default> protected $configurationPool ]
    Property [ <default> protected $menu ]
    Property [ <default> protected $menuFactory ]
    Property [ <default> protected $loaded ]
    Property [ <default> protected $formTheme ]
    Property [ <default> protected $filterTheme ]
    Property [ <default> protected $templates ]
    Property [ <default> protected $extensions ]
    Property [ <default> protected $labelTranslatorStrategy ]
    Property [ <default> protected $supportsPreviewMode ]
    Property [ <default> protected $securityInformation ]
    Property [ <default> protected $cacheIsGranted ]
    Property [ <default> protected $listModes ]
    Property [ <default> protected $accessMapping ]
  }

  - Dynamic properties [0] {
  }

  - Methods [223] {
    /**
     * {@inheritdoc}
     */
    Method [ <user, overwrites Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AbstractAdmin> public method configureActionButtons ] {
      @@ /var/www/html/app/src/Admin/UserAdmin.php 87 - 115

      - Parameters [2] {
        Parameter #0 [ <required> $action ]
        Parameter #1 [ <optional> $object = NULL ]
      }
    }

    /**
     * {@inheritdoc}
     */
    Method [ <user, overwrites Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AbstractAdmin> public method getExportFields ] {
      @@ /var/www/html/app/src/Admin/UserAdmin.php 120 - 143
    }

    /**
     * {@inheritdoc}
     */
    Method [ <user, overwrites Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getNewInstance ] {
      @@ /var/www/html/app/src/Admin/UserAdmin.php 148 - 171
    }

    /**
     * {@inheritdoc}
     */
    Method [ <user, overwrites Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\LifecycleHookProviderInterface> public method preUpdate ] {
      @@ /var/www/html/app/src/Admin/UserAdmin.php 176 - 235

      - Parameters [1] {
        Parameter #0 [ <required> $User ]
      }
    }

    /**
     * {@inheritdoc}
     */
    Method [ <user, overwrites Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AbstractAdmin> protected method configureRoutes ] {
      @@ /var/www/html/app/src/Admin/UserAdmin.php 240 - 249

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Route\RouteCollection $collection ]
      }
    }

    /**
     * {@inheritdoc}
     */
    Method [ <user, overwrites Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AbstractAdmin> protected method configureFormFields ] {
      @@ /var/www/html/app/src/Admin/UserAdmin.php 254 - 544

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Form\FormMapper $formMapper ]
      }
    }

    /**
     * {@inheritdoc}
     */
    Method [ <user, overwrites Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AbstractAdmin> protected method configureShowFields ] {
      @@ /var/www/html/app/src/Admin/UserAdmin.php 549 - 737

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Show\ShowMapper $showMapper ]
      }
    }

    /**
     * {@inheritdoc}
     */
    Method [ <user, overwrites Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AbstractAdmin> protected method configureDatagridFilters ] {
      @@ /var/www/html/app/src/Admin/UserAdmin.php 742 - 932

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Datagrid\DatagridMapper $datagridMapper ]
      }
    }

    /**
     * {@inheritdoc}
     */
    Method [ <user, overwrites Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AbstractAdmin> protected method configureListFields ] {
      @@ /var/www/html/app/src/Admin/UserAdmin.php 937 - 1052

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Datagrid\ListMapper $listMapper ]
      }
    }

    /**
     * @param string $code
     * @param string $class
     * @param string $baseControllerName
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, ctor> public method __construct ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 553 - 561

      - Parameters [3] {
        Parameter #0 [ <required> $code ]
        Parameter #1 [ <required> $class ]
        Parameter #2 [ <required> $baseControllerName ]
      }
    }

    /**
     * {@inheritdoc}
     *
     * NEXT_MAJOR: return null to indicate no override
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getExportFormats ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 568 - 573
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getDataSourceIterator ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 591 - 612
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method validate ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 614 - 616

      - Parameters [2] {
        Parameter #0 [ <required> Sonata\CoreBundle\Validator\ErrorElement $errorElement ]
        Parameter #1 [ <required> $object ]
      }
    }

    /**
     * define custom variable.
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method initialize ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 621 - 631
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method configure ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 633 - 635
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\LifecycleHookProviderInterface> public method update ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 637 - 656

      - Parameters [1] {
        Parameter #0 [ <required> $object ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\LifecycleHookProviderInterface> public method create ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 658 - 679

      - Parameters [1] {
        Parameter #0 [ <required> $object ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\LifecycleHookProviderInterface> public method delete ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 681 - 695

      - Parameters [1] {
        Parameter #0 [ <required> $object ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method preValidate ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 697 - 699

      - Parameters [1] {
        Parameter #0 [ <required> $object ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBun
8000
dle\Admin\LifecycleHookProviderInterface> public method postUpdate ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 705 - 707

      - Parameters [1] {
        Parameter #0 [ <required> $object ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\LifecycleHookProviderInterface> public method prePersist ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 709 - 711

      - Parameters [1] {
        Parameter #0 [ <required> $object ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\LifecycleHookProviderInterface> public method postPersist ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 713 - 715

      - Parameters [1] {
        Parameter #0 [ <required> $object ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\LifecycleHookProviderInterface> public method preRemove ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 717 - 719

      - Parameters [1] {
        Parameter #0 [ <required> $object ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\LifecycleHookProviderInterface> public method postRemove ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 721 - 723

      - Parameters [1] {
        Parameter #0 [ <required> $object ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method preBatchAction ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 725 - 727

      - Parameters [4] {
        Parameter #0 [ <required> $actionName ]
        Parameter #1 [ <required> Sonata\AdminBundle\Datagrid\ProxyQueryInterface $query ]
        Parameter #2 [ <required> array &$idx ]
        Parameter #3 [ <required> $allElements ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getFilterParameters ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 729 - 765
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method buildDatagrid ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 767 - 818
    }

    /**
     * Returns the name of the parent related field, so the field can be use to set the default
     * value (ie the parent object) or to filter the object.
     *
     * @return string the name of the parent related field
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getParentAssociationMapping ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 826 - 829
    }

    /**
     * Returns the baseRoutePattern used to generate the routing information.
     *
     * @throws \RuntimeException
     *
     * @return string the baseRoutePattern used to generate the routing information
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getBaseRoutePattern ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 838 - 875
    }

    /**
     * Returns the baseRouteName used to generate the routing information.
     *
     * @throws \RuntimeException
     *
     * @return string the baseRouteName used to generate the routing information
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getBaseRouteName ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 884 - 920
    }

    /**
     * urlize the given word.
     *
     * @param string $word
     * @param string $sep  the separator
     *
     * @return string
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method urlize ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 930 - 933

      - Parameters [2] {
        Parameter #0 [ <required> $word ]
        Parameter #1 [ <optional> $sep = '_' ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getClass ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 935 - 957
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getSubClasses ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 959 - 962
    }

    /**
     * NEXT_MAJOR: remove this method.
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method addSubClass ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 967 - 977

      - Parameters [1] {
        Parameter #0 [ <required> $subClass ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setSubClasses ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 979 - 982

      - Parameters [1] {
        Parameter #0 [ <required> array $subClasses ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method hasSubClass ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 984 - 987

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method hasActiveSubClass ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 989 - 996
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getActiveSubClass ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 998 - 1005
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getActiveSubclassCode ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1007 - 1020
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getBatchActions ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1022 - 1054
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\UrlGeneratorInterface> public method getRoutes ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1056 - 1061
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\UrlGeneratorInterface> public method getRouterIdParameter ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1063 - 1066
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getIdParameter ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1068 - 1077
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method hasRoute ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1079 - 1086

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method isCurrentRoute ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1088 - 1108

      - Parameters [2] {
        Parameter #0 [ <required> $name ]
        Parameter #1 [ <optional> $adminCode = NULL ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\UrlGeneratorInterface> public method generateObjectUrl ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1110 - 1115

      - Parameters [4] {
        Parameter #0 [ <required> $name ]
        Parameter #1 [ <required> $object ]
        Parameter #2 [ <optional> array $parameters = Array ]
        Parameter #3 [ <optional> $absolute = 1 ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\UrlGeneratorInterface> public method generateUrl ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1117 - 1120

      - Parameters [3] {
        Parameter #0 [ <required> $name ]
        Parameter #1 [ <optional> array $parameters = Array ]
        Parameter #2 [ <optional> $absolute = 1 ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\UrlGeneratorInterface> public method generateMenuUrl ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1122 - 1125

      - Parameters [3] {
        Parameter #0 [ <required> $name ]
        Parameter #1 [ <optional> array $parameters = Array ]
        Parameter #2 [ <optional> $absolute = 1 ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method setTemplates ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1127 - 1130

      - Parameters [1] {
        Parameter #0 [ <required> array $templates ]
      }
    }

    /**
     * @param string $name
     * @param string $template
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method setTemplate ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1136 - 1139

      - Parameters [2] {
        Parameter #0 [ <required> $name ]
        Parameter #1 [ <required> $template ]
      }
    }

    /**
     * @return array
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getTemplates ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1144 - 1147
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getTemplate ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1149 - 1154

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getFormBuilder ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1166 - 1178
    }

    /**
     * This method is being called by the main admin class and the child class,
     * the getFormBuilder is only call by the main admin class.
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method defineFormBuilder ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1184 - 1195

      - Parameters [1] {
        Parameter #0 [ <required> Symfony\Component\Form\FormBuilderInterface $formBuilder ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method attachAdminClass ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1197 - 1218

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Admin\FieldDescriptionInterface $fieldDescription ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getObject ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1220 - 1228

      - Parameters [1] {
        Parameter #0 [ <required> $id ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getForm ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1230 - 1235
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\FieldDescriptionRegistryInterface> public method getList ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1237 - 1242
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method createQuery ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1244 - 1259

      - Parameters [1] {
        Parameter #0 [ <optional> $context = 'list' ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getDatagrid ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1261 - 1266
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\MenuBuilderInterface> public method buildTabMenu ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1268 - 1292

      - Parameters [2] {
        Parameter #0 [ <required> $action ]
        Parameter #1 [ <optional> Sonata\AdminBundle\Admin\AdminInterface or NULL $childAdmin = NULL ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\MenuBuilderInterface> public method buildSideMenu ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1294 - 1297

      - Parameters [2] {
        Parameter #0 [ <required> $action ]
        Parameter #1 [ <optional> Sonata\AdminBundle\Admin\AdminInterface or NULL $childAdmin = NULL ]
      }
    }

    /**
     * @param string $action
     *
     * @return ItemInterface
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getSideMenu ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1304 - 1313

      - Parameters [2] {
        Parameter #0 [ <required> $action ]
        Parameter #1 [ <optional> Sonata\AdminBundle\Admin\AdminInterface or NULL $childAdmin = NULL ]
      }
    }

    /**
     * Returns the root code.
     *
     * @return string the root code
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getRootCode ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1320 - 1323
    }

    /**
     * Returns the master admin.
     *
     * @return AbstractAdmin the root admin class
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getRoot ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1330 - 1339
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setBaseControllerName ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1341 - 1344

      - Parameters [1] {
        Parameter #0 [ <required> $baseControllerName ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getBaseControllerName ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1346 - 1349
    }

    /**
     * @param string $label
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method setLabel ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1354 - 1357

      - Parameters [1] {
        Parameter #0 [ <required> $label ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getLabel ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1359 - 1362
    }

    /**
     * @param bool $persist
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method setPersistFilters ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1367 - 1370

      - Parameters [1] {
        Parameter #0 [ <required> $persist ]
      }
    }

    /**
     * @param int $maxPerPage
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method setMaxPerPage ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1375 - 1378

      - Parameters [1] {
        Parameter #0 [ <required> $maxPerPage ]
      }
    }

    /**
     * @return int
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getMaxPerPage ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1383 - 1386
    }

    /**
     * @param int $maxPageLinks
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method setMaxPageLinks ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1391 - 1394

      - Parameters [1] {
        Parameter #0 [ <required> $maxPageLinks ]
      }
    }

    /**
     * @return int
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getMaxPageLinks ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/Abstra
67E6
ctAdmin.php 1399 - 1402
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getFormGroups ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1404 - 1407
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setFormGroups ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1409 - 1412

      - Parameters [1] {
        Parameter #0 [ <required> array $formGroups ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method removeFieldFromFormGroup ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1414 - 1423

      - Parameters [1] {
        Parameter #0 [ <required> $key ]
      }
    }

    /**
     * @param array $group
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method reorderFormGroup ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1428 - 1433

      - Parameters [2] {
        Parameter #0 [ <required> $group ]
        Parameter #1 [ <required> array $keys ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getFormTabs ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1435 - 1438
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setFormTabs ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1440 - 1443

      - Parameters [1] {
        Parameter #0 [ <required> array $formTabs ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getShowTabs ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1445 - 1448
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setShowTabs ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1450 - 1453

      - Parameters [1] {
        Parameter #0 [ <required> array $showTabs ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getShowGroups ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1455 - 1458
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setShowGroups ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1460 - 1463

      - Parameters [1] {
        Parameter #0 [ <required> array $showGroups ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method reorderShowGroup ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1465 - 1470

      - Parameters [2] {
        Parameter #0 [ <required> $group ]
        Parameter #1 [ <required> array $keys ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setParentFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1472 - 1475

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Admin\FieldDescriptionInterface $parentFieldDescription ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getParentFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1477 - 1480
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method hasParentFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1482 - 1485
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setSubject ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1487 - 1503

      - Parameters [1] {
        Parameter #0 [ <required> $subject ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getSubject ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1505 - 1516
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method hasSubject ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1518 - 1521
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\FieldDescriptionRegistryInterface> public method getFormFieldDescriptions ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1523 - 1528
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\FieldDescriptionRegistryInterface> public method getFormFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1530 - 1533

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    /**
     * Returns true if the admin has a FieldDescription with the given $name.
     *
     * @param string $name
     *
     * @return bool
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method hasFormFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1542 - 1545

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method addFormFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1547 - 1550

      - Parameters [2] {
        Parameter #0 [ <required> $name ]
        Parameter #1 [ <required> Sonata\AdminBundle\Admin\FieldDescriptionInterface $fieldDescription ]
      }
    }

    /**
     * remove a FieldDescription.
     *
     * @param string $name
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method removeFormFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1557 - 1560

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    /**
     * build and return the collection of form FieldDescription.
     *
     * @return array collection of form FieldDescription
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getShowFieldDescriptions ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1567 - 1572
    }

    /**
     * Returns the form FieldDescription with the given $name.
     *
     * @param string $name
     *
     * @return FieldDescriptionInterface
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getShowFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1581 - 1586

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\FieldDescriptionRegistryInterface> public method hasShowFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1588 - 1591

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\FieldDescriptionRegistryInterface> public method addShowFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1593 - 1596

      - Parameters [2] {
        Parameter #0 [ <required> $name ]
        Parameter #1 [ <required> Sonata\AdminBundle\Admin\FieldDescriptionInterface $fieldDescription ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\FieldDescriptionRegistryInterface> public method removeShowFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1598 - 1601

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getListFieldDescriptions ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1603 - 1608
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getListFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1610 - 1613

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method hasListFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1615 - 1620

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\FieldDescriptionRegistryInterface> public method addListFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1622 - 1625

      - Parameters [2] {
        Parameter #0 [ <required> $name ]
        Parameter #1 [ <required> Sonata\AdminBundle\Admin\FieldDescriptionInterface $fieldDescription ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\FieldDescriptionRegistryInterface> public method removeListFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1627 - 1630

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\FieldDescriptionRegistryInterface> public method getFilterFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1632 - 1635

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\FieldDescriptionRegistryInterface> public method hasFilterFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1637 - 1640

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\FieldDescriptionRegistryInterface> public method addFilterFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1642 - 1645

      - Parameters [2] {
        Parameter #0 [ <required> $name ]
        Parameter #1 [ <required> Sonata\AdminBundle\Admin\FieldDescriptionInterface $fieldDescription ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\FieldDescriptionRegistryInterface> public method removeFilterFieldDescription ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1647 - 1650

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\FieldDescriptionRegistryInterface> public method getFilterFieldDescriptions ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1652 - 1657
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\ParentAdminInterface> public method addChild ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1659 - 1675

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Admin\AdminInterface $child ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\ParentAdminInterface> public method hasChild ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1677 - 1680

      - Parameters [1] {
        Parameter #0 [ <required> $code ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\ParentAdminInterface> public method getChildren ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1682 - 1685
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\ParentAdminInterface> public method getChild ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1687 - 1690

      - Parameters [1] {
        Parameter #0 [ <required> $code ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setParent ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1692 - 1695

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Admin\AdminInterface $parent ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getParent ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/Abstrac
A3E2
tAdmin.php 1697 - 1700
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminTreeInterface> final public method getRootAncestor ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1702 - 1711
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminTreeInterface> final public method getChildDepth ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1713 - 1724
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminTreeInterface> final public method getCurrentLeafChildAdmin ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1726 - 1739
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method isChild ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1741 - 1744
    }

    /**
     * Returns true if the admin has children, false otherwise.
     *
     * @return bool if the admin has children
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method hasChildren ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1751 - 1754
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setUniqid ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1756 - 1759

      - Parameters [1] {
        Parameter #0 [ <required> $uniqid ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getUniqid ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1761 - 1768
    }

    /**
     * Returns the classname label.
     *
     * @return string the classname label
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getClassnameLabel ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1775 - 1778
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getPersistentParameters ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1780 - 1795
    }

    /**
     * @param string $name
     *
     * @return null|mixed
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getPersistentParameter ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1802 - 1807

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getBreadcrumbs ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1809 - 1818

      - Parameters [1] {
        Parameter #0 [ <required> $action ]
      }
    }

    /**
     * Generates the breadcrumbs array.
     *
     * Note: the method will be called by the top admin instance (parent => child)
     *
     * @param string $action
     *
     * @return array
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method buildBreadcrumbs ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1829 - 1842

      - Parameters [2] {
        Parameter #0 [ <required> $action ]
        Parameter #1 [ <optional> Knp\Menu\ItemInterface or NULL $menu = NULL ]
      }
    }

    /**
     * NEXT_MAJOR : remove this method.
     *
     * @return BreadcrumbsBuilderInterface
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> final public method getBreadcrumbsBuilder ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1849 - 1863
    }

    /**
     * NEXT_MAJOR : remove this method.
     *
     * @return AbstractAdmin
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> final public method setBreadcrumbsBuilder ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1870 - 1880

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Admin\BreadcrumbsBuilderInterface $value ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setCurrentChild ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1882 - 1885

      - Parameters [1] {
        Parameter #0 [ <required> $currentChild ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getCurrentChild ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1887 - 1890
    }

    /**
     * Returns the current child admin instance.
     *
     * @return AdminInterface|null the current child admin instance
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getCurrentChildAdmin ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1897 - 1904
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method trans ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1906 - 1916

      - Parameters [4] {
        Parameter #0 [ <required> $id ]
        Parameter #1 [ <optional> array $parameters = Array ]
        Parameter #2 [ <optional> $domain = NULL ]
        Parameter #3 [ <optional> $locale = NULL ]
      }
    }

    /**
     * Translate a message id.
     *
     * NEXT_MAJOR: remove this method
     *
     * @param string      $id
     * @param int         $count
     * @param string|null $domain
     * @param string|null $locale
     *
     * @return string the translated string
     *
     * @deprecated since 3.9, to be removed with 4.0
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method transChoice ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1932 - 1942

      - Parameters [5] {
        Parameter #0 [ <required> $id ]
        Parameter #1 [ <required> $count ]
        Parameter #2 [ <optional> array $parameters = Array ]
        Parameter #3 [ <optional> $domain = NULL ]
        Parameter #4 [ <optional> $locale = NULL ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setTranslationDomain ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1944 - 1947

      - Parameters [1] {
        Parameter #0 [ <required> $translationDomain ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getTranslationDomain ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1949 - 1952
    }

    /**
     * {@inheritdoc}
     *
     * NEXT_MAJOR: remove this method
     *
     * @deprecated since 3.9, to be removed with 4.0
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setTranslator ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1961 - 1972

      - Parameters [1] {
        Parameter #0 [ <required> Symfony\Component\Translation\TranslatorInterface $translator ]
      }
    }

    /**
     * {@inheritdoc}
     *
     * NEXT_MAJOR: remove this method
     *
     * @deprecated since 3.9, to be removed with 4.0
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getTranslator ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1981 - 1989
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getTranslationLabel ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1991 - 1994

      - Parameters [3] {
        Parameter #0 [ <required> $label ]
        Parameter #1 [ <optional> $context = '' ]
        Parameter #2 [ <optional> $type = '' ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setRequest ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 1996 - 2003

      - Parameters [1] {
        Parameter #0 [ <required> Symfony\Component\HttpFoundation\Request $request ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getRequest ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2005 - 2012
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method hasRequest ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2014 - 2017
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setFormContractor ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2019 - 2022

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Builder\FormContractorInterface $formBuilder ]
      }
    }

    /**
     * @return FormContractorInterface
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getFormContractor ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2027 - 2030
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setDatagridBuilder ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2032 - 2035

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Builder\DatagridBuilderInterface $datagridBuilder ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getDatagridBuilder ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2037 - 2040
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setListBuilder ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2042 - 2045

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Builder\ListBuilderInterface $listBuilder ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getListBuilder ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2047 - 2050
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method setShowBuilder ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2052 - 2055

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Builder\ShowBuilderInterface $showBuilder ]
      }
    }

    /**
     * @return ShowBuilderInterface
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getShowBuilder ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2060 - 2063
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setConfigurationPool ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2065 - 2068

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Admin\Pool $configurationPool ]
      }
    }

    /**
     * @return Pool
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getConfigurationPool ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2073 - 2076
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\UrlGeneratorInterface> public method setRouteGenerator ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2078 - 2081

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Route\RouteGeneratorInterface $routeGenerator ]
      }
    }

    /**
     * @return RouteGeneratorInterface
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getRouteGenerator ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2086 - 2089
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getCode ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2091 - 2094
    }

    /**
     * NEXT_MAJOR: Remove this function.
     *
     * @deprecated This method is deprecated since 3.24 and will be removed in 4.0
     *
     * @param string $baseCodeRoute
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method setBaseCodeRoute ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2103 - 2111

      - Parameters [1] {
        Parameter #0 [ <required> $baseCodeRoute ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getBaseCodeRoute ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2113 - 2134
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getModelManager ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2136 - 2139
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method setModelManager ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2141 - 2144

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Model\ModelManagerInterface $modelManager ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getManagerType ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2146 - 2149
    }

    /**
     * @param string $type
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method setManagerType ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2154 - 2157

      - Parameters [1] {
        Parameter #0 [ <required> $type ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Symfony\Component\Security\Acl\Model\DomainObjectInterface> public method getObjectIdentifier ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2159 - 2162
    }

    /**
     * Set the roles and permissions per role.
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method setSecurityInformation ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2167 - 2170

      - Parameters [1] {
        Parameter #0 [ <required> array $information ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getSecurityInformation ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2172 - 2175
    }

    /**
     * Return the list of permissions the user should have in order to display the admin.
     *
     * @param string $context
     *
     * @return array
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getPermissionsShow ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2184 - 2192

      - Parameters [1] {
        Parameter #0 [ <required> $context ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method showIn ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2194 - 2202

      - Parameters [1] {
        Parameter #0 [ <required> $context ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method createObjectSecurity ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2204 - 2207

      - Parameters [1] {
        Parameter #0 [ <required> $object ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setSecurityHandler ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2209 - 2212

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Security\Handler\SecurityHandlerInterface $securityHandler ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getSecurityHandler ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2214 - 2217
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method isGranted ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2219 - 2228

      - Parameters [2] {
        Parameter #0 [ <required> $name ]
        Parameter #1 [ <optional> $object = NULL ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\UrlGeneratorInterface> public method getUrlsafeIdentifier ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2230 - 2233

      - Parameters [1] {
        Parameter #0 [ <required> $entity ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getNormalizedIdentifier ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2235 - 2238

      - Parameters [1] {
        Parameter #0 [ <required> $entity ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method id ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2240 - 2243

      - Parameters [1] {
        Parameter #0 [ <required> $entity ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setValidator ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2245 - 2255

      - Parameters [1] {
        Parameter #0 [ <required> $validator ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getValidator ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2257 - 2260
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getShow ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2262 - 2267
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setFormTheme ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2269 - 2272

      - Parameters [1] {
        Parameter #0 [ <required> array $formTheme ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getFormTheme ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2274 - 2277
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setFilterTheme ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2279 - 2282

      - Parameters [1] {
        Parameter #0 [ <required> array $filterTheme ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getFilterTheme ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2284 - 2287
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method addExtension ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2289 - 2292

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Admin\AdminExtensionInterface $extension ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getExtensions ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2294 - 2297
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setMenuFactory ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2299 - 2302

      - Parameters [1] {
        Parameter #0 [ <required> Knp\Menu\FactoryInterface $menuFactory ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getMenu
FCAD
Factory ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2304 - 2307
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setRouteBuilder ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2309 - 2312

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Builder\RouteBuilderInterface $routeBuilder ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getRouteBuilder ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2314 - 2317
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method toString ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2319 - 2330

      - Parameters [1] {
        Parameter #0 [ <required> $object ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setLabelTranslatorStrategy ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2332 - 2335

      - Parameters [1] {
        Parameter #0 [ <required> Sonata\AdminBundle\Translator\LabelTranslatorStrategyInterface $labelTranslatorStrategy ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getLabelTranslatorStrategy ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2337 - 2340
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method supportsPreviewMode ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2342 - 2345
    }

    /**
     * Set custom per page options.
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method setPerPageOptions ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2350 - 2353

      - Parameters [1] {
        Parameter #0 [ <required> array $options ]
      }
    }

    /**
     * Returns predefined per page options.
     *
     * @return array
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getPerPageOptions ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2360 - 2363
    }

    /**
     * Set pager type.
     *
     * @param string $pagerType
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method setPagerType ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2370 - 2373

      - Parameters [1] {
        Parameter #0 [ <required> $pagerType ]
      }
    }

    /**
     * Get pager type.
     *
     * @return string
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getPagerType ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2380 - 2383
    }

    /**
     * Returns true if the per page value is allowed, false otherwise.
     *
     * @param int $perPage
     *
     * @return bool
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method determinedPerPageValue ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2392 - 2395

      - Parameters [1] {
        Parameter #0 [ <required> $perPage ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method isAclEnabled ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2397 - 2400
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getObjectMetadata ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2402 - 2405

      - Parameters [1] {
        Parameter #0 [ <required> $object ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getListModes ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2407 - 2410
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method setListMode ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2412 - 2419

      - Parameters [1] {
        Parameter #0 [ <required> $mode ]
      }
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AdminInterface> public method getListMode ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2421 - 2428
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AccessRegistryInterface> public method getAccessMapping ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2430 - 2433
    }

    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin, prototype Sonata\AdminBundle\Admin\AccessRegistryInterface> public method checkAccess ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2435 - 2456

      - Parameters [2] {
        Parameter #0 [ <required> $action ]
        Parameter #1 [ <optional> $object = NULL ]
      }
    }

    /**
     * Hook to handle access authorization, without throw Exception.
     *
     * @param string $action
     * @param object $object
     *
     * @return bool
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method hasAccess ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2466 - 2485

      - Parameters [2] {
        Parameter #0 [ <required> $action ]
        Parameter #1 [ <optional> $object = NULL ]
      }
    }

    /**
     * @param string $action
     * @param mixed  $object
     *
     * @return array
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getActionButtons ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2556 - 2568

      - Parameters [2] {
        Parameter #0 [ <required> $action ]
        Parameter #1 [ <optional> $object = NULL ]
      }
    }

    /**
     * Get the list of actions that can be accessed directly from the dashboard.
     *
     * @return array
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method getDashboardActions ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2575 - 2599
    }

    /**
     * Setting to true will enable mosaic button for the admin screen.
     * Setting to false will hide mosaic button for the admin screen.
     *
     * @param bool $isShown
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> final public method showMosaicButton ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2607 - 2614

      - Parameters [1] {
        Parameter #0 [ <required> $isShown ]
      }
    }

    /**
     * @param FormMapper $form
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> final public method getSearchResultLink ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2619 - 2626

      - Parameters [1] {
        Parameter #0 [ <required> $object ]
      }
    }

    /**
     * Checks if a filter type is set to a default value.
     *
     * @param string $name
     *
     * @return bool
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> final public method isDefaultFilter ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2635 - 2645

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    /**
     * Check object existence and access, without throw Exception.
     *
     * @param string $action
     * @param object $object
     *
     * @return bool
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> public method canAccessObject ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2655 - 2658

      - Parameters [2] {
        Parameter #0 [ <required> $action ]
        Parameter #1 [ <required> $object ]
      }
    }

    /**
     * Returns a list of default filters.
     *
     * @return array
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> final protected method getDefaultFilterValues ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2665 - 2679
    }

    /**
     * Allows you to customize batch actions.
     *
     * @param array $actions List of actions
     *
     * @return array
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> protected method configureBatchActions ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2708 - 2711

      - Parameters [1] {
        Parameter #0 [ <required> $actions ]
      }
    }

    /**
     * NEXT_MAJOR: remove this method.
     *
     * @return mixed
     *
     * @deprecated Use configureTabMenu instead
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> protected method configureSideMenu ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2720 - 2722

      - Parameters [3] {
        Parameter #0 [ <required> Knp\Menu\ItemInterface $menu ]
        Parameter #1 [ <required> $action ]
        Parameter #2 [ <optional> Sonata\AdminBundle\Admin\AdminInterface or NULL $childAdmin = NULL ]
      }
    }

    /**
     * Configures the tab menu in your admin.
     *
     * @param string $action
     *
     * @return mixed
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> protected method configureTabMenu ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2731 - 2736

      - Parameters [3] {
        Parameter #0 [ <required> Knp\Menu\ItemInterface $menu ]
        Parameter #1 [ <required> $action ]
        Parameter #2 [ <optional> Sonata\AdminBundle\Admin\AdminInterface or NULL $childAdmin = NULL ]
      }
    }

    /**
     * build the view FieldDescription array.
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> protected method buildShow ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2741 - 2755
    }

    /**
     * build the list FieldDescription array.
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> protected method buildList ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2760 - 2811
    }

    /**
     * Build the form FieldDescription collection.
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> protected method buildForm ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2816 - 2848
    }

    /**
     * Gets the subclass corresponding to the given name.
     *
     * @param string $name The name of the sub class
     *
     * @return string the subclass
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> protected method getSubClass ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2857 - 2868

      - Parameters [1] {
        Parameter #0 [ <required> $name ]
      }
    }

    /**
     * Attach the inline validator to the model metadata, this must be done once per admin.
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> protected method attachInlineValidator ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2873 - 2899
    }

    /**
     * Predefine per page options.
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> protected method predefinePerPageOptions ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2904 - 2909
    }

    /**
     * Return list routes with permissions name.
     *
     * @return array
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> protected method getAccess ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2916 - 2940
    }

    /**
     * Returns a list of default filters.
     */
    Method [ <user, inherits Sonata\AdminBundle\Admin\AbstractAdmin> protected method configureDefaultFilterValues ] {
      @@ /var/www/html/app/vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php 2945 - 2947

      - Parameters [1] {
        Parameter #0 [ <required> array &$filterValues ]
      }
    }
  }
}

Furthermore, echoing static reflection neither shows that method:

$refl = new \ReflectionClass(\App\Admin\UserAdmin::class);
echo $refl;

Note: For opcode safety, I've executed the command disabling opacache: php -dopcache.enable_cli=0 bin/console cache:clear -vvv.

@phansys
Copy link
Contributor Author
phansys commented Apr 5, 2018

I'm closing this since I have no way to figure out the reason behind the problem. The issue regarding the undefined method is gone after execution of composer install (which triggers the execution of other commands previous to cache:clear). Before, for historic reasons related to incenteev/composer-parameter-handler scripts, I was running composer install --no-scripts (in order to avoid parameters.yml to be overridden with values from environment variables), so I can confirm my autoload files were up to date while the issue was present:

$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
ocramius/package-versions:  Generating version class...
ocramius/package-versions: ...done generating version class
Executing script cache:clear [OK]
Executing script assets:install --symlink --relative public [OK]

I'm still experiencing other issues, like services being tried to be accessed with the execution of lint:yaml config by instance; or services explicitly marked as lazy (working well in 3.x) which are trying to be instantiated while cache warmup.
Due these issues, I must delay the movement to 4.x in my project, so I'll try to keep this issue update when I can.
Thank you very much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants
0