Parcourir la source

fix getMetadataFor detection (#4083)

Thomas il y a 9 ans
Parent
commit
7b205fe96f
1 fichiers modifiés avec 11 ajouts et 2 suppressions
  1. 11 2
      Command/ExplainAdminCommand.php

+ 11 - 2
Command/ExplainAdminCommand.php

@@ -89,9 +89,18 @@ class ExplainAdminCommand extends ContainerAwareCommand
             $output->writeln(sprintf('  - % -25s  % -15s % -15s', $name, $fieldDescription->getType(), $fieldDescription->getTemplate()));
         }
 
+        $metadata = false;
+
         if ($this->getContainer()->has('validator.validator_factory')) {
-            $metadata = $this->getContainer()->get('validator.validator_factory')->getMetadataFor($admin->getClass());
-        } else {
+            $factory = $this->getContainer()->get('validator.validator_factory');
+
+            if (method_exists($factory, 'getMetadataFor')) {
+                $metadata = $factory->getMetadataFor($admin->getClass());
+            }
+        }
+
+        // NEXT_MAJOR: remove method check in next major release
+        if (!$metadata) {
             $metadata = $this->getContainer()->get('validator')->getMetadataFor($admin->getClass());
         }