| Conditions | 13 | 
| Paths | 640 | 
| Total Lines | 156 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php  | 
            ||
| 37 | public function load(array $configs, ContainerBuilder $container): void  | 
            ||
| 38 |     { | 
            ||
| 39 |         $bundles = $container->getParameter('kernel.bundles'); | 
            ||
| 40 | |||
| 41 |         if (isset($bundles['SonataUserBundle'])) { | 
            ||
| 42 | // integrate the SonataUserBundle / FOSUserBundle if the bundle exists  | 
            ||
| 43 | array_unshift($configs, [  | 
            ||
| 44 | 'templates' => [  | 
            ||
| 45 | 'user_block' => '@SonataUser/Admin/Core/user_block.html.twig',  | 
            ||
| 46 | ],  | 
            ||
| 47 | ]);  | 
            ||
| 48 | }  | 
            ||
| 49 | |||
| 50 |         if (isset($bundles['SonataIntlBundle'])) { | 
            ||
| 51 | // integrate the SonataUserBundle if the bundle exists  | 
            ||
| 52 | array_unshift($configs, [  | 
            ||
| 53 | 'templates' => [  | 
            ||
| 54 | 'history_revision_timestamp' => '@SonataIntl/CRUD/history_revision_timestamp.html.twig',  | 
            ||
| 55 | ],  | 
            ||
| 56 | ]);  | 
            ||
| 57 | }  | 
            ||
| 58 | |||
| 59 | $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));  | 
            ||
| 60 |         $loader->load('actions.xml'); | 
            ||
| 61 |         $loader->load('block.xml'); | 
            ||
| 62 |         $loader->load('commands.xml'); | 
            ||
| 63 |         $loader->load('core.xml'); | 
            ||
| 64 |         $loader->load('event_listener.xml'); | 
            ||
| 65 |         $loader->load('form_types.xml'); | 
            ||
| 66 |         $loader->load('menu.xml'); | 
            ||
| 67 |         $loader->load('route.xml'); | 
            ||
| 68 |         $loader->load('twig.xml'); | 
            ||
| 69 |         $loader->load('validator.xml'); | 
            ||
| 70 | |||
| 71 |         if (isset($bundles['MakerBundle'])) { | 
            ||
| 72 |             $loader->load('makers.xml'); | 
            ||
| 73 | }  | 
            ||
| 74 | |||
| 75 |         if (isset($bundles['SonataExporterBundle'])) { | 
            ||
| 76 |             $loader->load('exporter.xml'); | 
            ||
| 77 | }  | 
            ||
| 78 | |||
| 79 | $configuration = $this->getConfiguration($configs, $container);  | 
            ||
| 80 | $config = $this->processConfiguration($configuration, $configs);  | 
            ||
| 
                                                                                                    
                        
                         | 
                |||
| 81 | |||
| 82 | $config['options']['javascripts'] = $this->buildJavascripts($config);  | 
            ||
| 83 | $config['options']['stylesheets'] = $this->buildStylesheets($config);  | 
            ||
| 84 | $config['options']['role_admin'] = $config['security']['role_admin'];  | 
            ||
| 85 | $config['options']['role_super_admin'] = $config['security']['role_super_admin'];  | 
            ||
| 86 | $config['options']['search'] = $config['search'];  | 
            ||
| 87 | |||
| 88 |         $pool = $container->getDefinition('sonata.admin.pool'); | 
            ||
| 89 | $pool->replaceArgument(1, $config['title']);  | 
            ||
| 90 | $pool->replaceArgument(2, $config['title_logo']);  | 
            ||
| 91 | $pool->replaceArgument(3, $config['options']);  | 
            ||
| 92 | |||
| 93 |         if (false === $config['options']['lock_protection']) { | 
            ||
| 94 |             $container->removeDefinition('sonata.admin.lock.extension'); | 
            ||
| 95 | }  | 
            ||
| 96 | |||
| 97 |         $container->setParameter('sonata.admin.configuration.global_search.empty_boxes', $config['global_search']['empty_boxes']); | 
            ||
| 98 |         $container->setParameter('sonata.admin.configuration.global_search.case_sensitive', $config['global_search']['case_sensitive']); | 
            ||
| 99 |         $container->setParameter('sonata.admin.configuration.templates', $config['templates']); | 
            ||
| 100 |         $container->setParameter('sonata.admin.configuration.admin_services', $config['admin_services']); | 
            ||
| 101 |         $container->setParameter('sonata.admin.configuration.dashboard_groups', $config['dashboard']['groups']); | 
            ||
| 102 |         $container->setParameter('sonata.admin.configuration.dashboard_blocks', $config['dashboard']['blocks']); | 
            ||
| 103 |         $container->setParameter('sonata.admin.configuration.sort_admins', $config['options']['sort_admins']); | 
            ||
| 104 | $container->setParameter(  | 
            ||
| 105 | 'sonata.admin.configuration.mosaic_background',  | 
            ||
| 106 | $config['options']['mosaic_background']  | 
            ||
| 107 | );  | 
            ||
| 108 |         $container->setParameter('sonata.admin.configuration.default_group', $config['options']['default_group']); | 
            ||
| 109 |         $container->setParameter('sonata.admin.configuration.default_label_catalogue', $config['options']['default_label_catalogue']); | 
            ||
| 110 |         $container->setParameter('sonata.admin.configuration.default_icon', $config['options']['default_icon']); | 
            ||
| 111 |         $container->setParameter('sonata.admin.configuration.breadcrumbs', $config['breadcrumbs']); | 
            ||
| 112 | |||
| 113 |         if (null === $config['security']['acl_user_manager'] && isset($bundles['FOSUserBundle'])) { | 
            ||
| 114 |             $container->setParameter('sonata.admin.security.acl_user_manager', 'fos_user.user_manager'); | 
            ||
| 115 |         } else { | 
            ||
| 116 |             $container->setParameter('sonata.admin.security.acl_user_manager', $config['security']['acl_user_manager']); | 
            ||
| 117 | }  | 
            ||
| 118 | |||
| 119 |         $container->setAlias('sonata.admin.security.handler', $config['security']['handler']); | 
            ||
| 120 | |||
| 121 |         switch ($config['security']['handler']) { | 
            ||
| 122 | case 'sonata.admin.security.handler.role':  | 
            ||
| 123 |                 if (0 === \count($config['security']['information'])) { | 
            ||
| 124 | $config['security']['information'] = [  | 
            ||
| 125 | 'EDIT' => ['EDIT'],  | 
            ||
| 126 | 'LIST' => ['LIST'],  | 
            ||
| 127 | 'CREATE' => ['CREATE'],  | 
            ||
| 128 | 'VIEW' => ['VIEW'],  | 
            ||
| 129 | 'DELETE' => ['DELETE'],  | 
            ||
| 130 | 'EXPORT' => ['EXPORT'],  | 
            ||
| 131 | 'ALL' => ['ALL'],  | 
            ||
| 132 | ];  | 
            ||
| 133 | }  | 
            ||
| 134 | |||
| 135 | break;  | 
            ||
| 136 | case 'sonata.admin.security.handler.acl':  | 
            ||
| 137 |                 if (0 === \count($config['security']['information'])) { | 
            ||
| 138 | $config['security']['information'] = [  | 
            ||
| 139 | 'GUEST' => ['VIEW', 'LIST'],  | 
            ||
| 140 | 'STAFF' => ['EDIT', 'LIST', 'CREATE'],  | 
            ||
| 141 | 'EDITOR' => ['OPERATOR', 'EXPORT'],  | 
            ||
| 142 | 'ADMIN' => ['MASTER'],  | 
            ||
| 143 | ];  | 
            ||
| 144 | }  | 
            ||
| 145 | |||
| 146 | break;  | 
            ||
| 147 | }  | 
            ||
| 148 | |||
| 149 |         $container->setParameter('sonata.admin.configuration.security.role_admin', $config['security']['role_admin']); | 
            ||
| 150 |         $container->setParameter('sonata.admin.configuration.security.role_super_admin', $config['security']['role_super_admin']); | 
            ||
| 151 |         $container->setParameter('sonata.admin.configuration.security.information', $config['security']['information']); | 
            ||
| 152 |         $container->setParameter('sonata.admin.configuration.security.admin_permissions', $config['security']['admin_permissions']); | 
            ||
| 153 |         $container->setParameter('sonata.admin.configuration.security.object_permissions', $config['security']['object_permissions']); | 
            ||
| 154 | |||
| 155 |         $loader->load('security.xml'); | 
            ||
| 156 | |||
| 157 |         $container->setParameter('sonata.admin.extension.map', $config['extensions']); | 
            ||
| 158 | |||
| 159 | /*  | 
            ||
| 160 | * This is a work in progress, so for now it is hardcoded  | 
            ||
| 161 | */  | 
            ||
| 162 | $classes = [  | 
            ||
| 163 | SymfonyChoiceType::class => '',  | 
            ||
| 164 | SymfonyDateType::class => 'sonata-medium-date',  | 
            ||
| 165 | SymfonyDateTimeType::class => 'sonata-medium-date',  | 
            ||
| 166 | SymfonyEmailType::class => '',  | 
            ||
| 167 | SymfonyIntegerType::class => '',  | 
            ||
| 168 | SymfonyTextareaType::class => '',  | 
            ||
| 169 | SymfonyTextType::class => '',  | 
            ||
| 170 | ];  | 
            ||
| 171 | |||
| 172 |         $container->getDefinition('sonata.admin.form.extension.field') | 
            ||
| 173 | ->replaceArgument(0, $classes)  | 
            ||
| 174 | ->replaceArgument(1, $config['options']);  | 
            ||
| 175 | |||
| 176 | // remove non-Mopa compatibility layer  | 
            ||
| 177 |         if (isset($bundles['MopaBootstrapBundle'])) { | 
            ||
| 178 |             $container->removeDefinition('sonata.admin.form.extension.field.mopa'); | 
            ||
| 179 | }  | 
            ||
| 180 | |||
| 181 | // set filter persistence  | 
            ||
| 182 |         $container->setParameter('sonata.admin.configuration.filters.persist', $config['persist_filters']); | 
            ||
| 183 |         $container->setParameter('sonata.admin.configuration.filters.persister', $config['filter_persister']); | 
            ||
| 184 | |||
| 185 |         $container->setParameter('sonata.admin.configuration.show.mosaic.button', $config['show_mosaic_button']); | 
            ||
| 186 | |||
| 187 | $this->replacePropertyAccessor($container);  | 
            ||
| 188 | |||
| 189 | $container  | 
            ||
| 190 | ->registerForAutoconfiguration(ModelManagerInterface::class)  | 
            ||
| 191 | ->addTag(ModelManagerCompilerPass::MANAGER_TAG);  | 
            ||
| 192 | }  | 
            ||
| 193 | |||
| 244 | 
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: