Browse Source

[Form] Order method according to their visibility to respect the CS

Victor Berchet 14 years ago
parent
commit
2db53b5e28

+ 51 - 51
src/Symfony/Component/Form/AbstractExtension.php

@@ -39,6 +39,57 @@ abstract class AbstractExtension implements FormExtensionInterface
      */
     private $typeGuesserLoaded = false;
 
+    public function getType($name)
+    {
+        if (null === $this->types) {
+            $this->initTypes();
+        }
+
+        if (!isset($this->types[$name])) {
+            throw new FormException(sprintf('The type "%s" can not be loaded by this extension', $name));
+        }
+
+        return $this->types[$name];
+    }
+
+    public function hasType($name)
+    {
+        if (null === $this->types) {
+            $this->initTypes();
+        }
+
+        return isset($this->types[$name]);
+    }
+
+    public function getTypeExtensions($name)
+    {
+        if (null === $this->typeExtensions) {
+            $this->initTypeExtensions();
+        }
+
+        return isset($this->typeExtensions[$name])
+            ? $this->typeExtensions[$name]
+            : array();
+    }
+
+    public function hasTypeExtensions($name)
+    {
+        if (null === $this->typeExtensions) {
+            $this->initTypeExtensions();
+        }
+
+        return isset($this->typeExtensions[$name]) && count($this->typeExtensions[$name]) > 0;
+    }
+
+    public function getTypeGuesser()
+    {
+        if (!$this->typeGuesserLoaded) {
+            $this->initTypeGuesser();
+        }
+
+        return $this->typeGuesser;
+    }
+
     protected function loadTypes()
     {
         return array();
@@ -104,55 +155,4 @@ abstract class AbstractExtension implements FormExtensionInterface
 
         $this->guesser = $guesser;
     }
-
-    public function getType($name)
-    {
-        if (null === $this->types) {
-            $this->initTypes();
-        }
-
-        if (!isset($this->types[$name])) {
-            throw new FormException(sprintf('The type "%s" can not be loaded by this extension', $name));
-        }
-
-        return $this->types[$name];
-    }
-
-    public function hasType($name)
-    {
-        if (null === $this->types) {
-            $this->initTypes();
-        }
-
-        return isset($this->types[$name]);
-    }
-
-    function getTypeExtensions($name)
-    {
-        if (null === $this->typeExtensions) {
-            $this->initTypeExtensions();
-        }
-
-        return isset($this->typeExtensions[$name])
-            ? $this->typeExtensions[$name]
-            : array();
-    }
-
-    function hasTypeExtensions($name)
-    {
-        if (null === $this->typeExtensions) {
-            $this->initTypeExtensions();
-        }
-
-        return isset($this->typeExtensions[$name]) && count($this->typeExtensions[$name]) > 0;
-    }
-
-    public function getTypeGuesser()
-    {
-        if (!$this->typeGuesserLoaded) {
-            $this->initTypeGuesser();
-        }
-
-        return $this->typeGuesser;
-    }
 }

+ 16 - 16
src/Symfony/Component/Form/Extension/Csrf/CsrfProvider/DefaultCsrfProvider.php

@@ -40,22 +40,6 @@ class DefaultCsrfProvider implements CsrfProviderInterface
         $this->secret = $secret;
     }
 
-    /**
-     * Returns the ID of the user session
-     *
-     * Automatically starts the session if necessary.
-     *
-     * @return string  The session ID
-     */
-    protected function getSessionId()
-    {
-        if (!session_id()) {
-            session_start();
-        }
-
-        return session_id();
-    }
-
     /**
      * {@inheritDoc}
      */
@@ -71,4 +55,20 @@ class DefaultCsrfProvider implements CsrfProviderInterface
     {
         return $token === $this->generateCsrfToken($pageId);
     }
+
+    /**
+     * Returns the ID of the user session
+     *
+     * Automatically starts the session if necessary.
+     *
+     * @return string  The session ID
+     */
+    protected function getSessionId()
+    {
+        if (!session_id()) {
+            session_start();
+        }
+
+        return session_id();
+    }
 }

+ 55 - 55
src/Symfony/Component/Form/Extension/Validator/Validator/DelegatingValidator.php

@@ -77,6 +77,61 @@ class DelegatingValidator implements FormValidatorInterface
         }
     }
 
+    /**
+     * Validates the data of a form
+     *
+     * This method is called automatically during the validation process.
+     *
+     * @param FormInterface    $form    The validated form
+     * @param ExecutionContext $context The current validation context
+     */
+    public static function validateFormData(FormInterface $form, ExecutionContext $context)
+    {
+        if (is_object($form->getData()) || is_array($form->getData())) {
+            $propertyPath = $context->getPropertyPath();
+            $graphWalker = $context->getGraphWalker();
+
+            // The Execute constraint is called on class level, so we need to
+            // set the property manually
+            $context->setCurrentProperty('data');
+
+            // Adjust the property path accordingly
+            if (!empty($propertyPath)) {
+                $propertyPath .= '.';
+            }
+
+            $propertyPath .= 'data';
+
+            foreach (self::getFormValidationGroups($form) as $group) {
+                $graphWalker->walkReference($form->getData(), $group, $propertyPath, true);
+            }
+        }
+    }
+
+    static protected function getFormValidationGroups(FormInterface $form)
+    {
+        $groups = null;
+
+        if ($form->hasAttribute('validation_groups')) {
+            $groups = $form->getAttribute('validation_groups');
+        }
+
+        $currentForm = $form;
+        while (!$groups && $currentForm->hasParent()) {
+            $currentForm = $currentForm->getParent();
+
+            if ($currentForm->hasAttribute('validation_groups')) {
+                $groups = $currentForm->getAttribute('validation_groups');
+            }
+        }
+
+        if (null === $groups) {
+            $groups = array('Default');
+        }
+
+        return (array) $groups;
+    }
+
     private function buildFormPathMapping(FormInterface $form, array &$mapping, $formPath = '', $namePath = '')
     {
         if ($formPath) {
@@ -178,59 +233,4 @@ class DelegatingValidator implements FormValidatorInterface
             }
         }
     }
-
-    /**
-     * Validates the data of a form
-     *
-     * This method is called automatically during the validation process.
-     *
-     * @param FormInterface    $form    The validated form
-     * @param ExecutionContext $context The current validation context
-     */
-    public static function validateFormData(FormInterface $form, ExecutionContext $context)
-    {
-        if (is_object($form->getData()) || is_array($form->getData())) {
-            $propertyPath = $context->getPropertyPath();
-            $graphWalker = $context->getGraphWalker();
-
-            // The Execute constraint is called on class level, so we need to
-            // set the property manually
-            $context->setCurrentProperty('data');
-
-            // Adjust the property path accordingly
-            if (!empty($propertyPath)) {
-                $propertyPath .= '.';
-            }
-
-            $propertyPath .= 'data';
-
-            foreach (self::getFormValidationGroups($form) as $group) {
-                $graphWalker->walkReference($form->getData(), $group, $propertyPath, true);
-            }
-        }
-    }
-
-    static protected function getFormValidationGroups(FormInterface $form)
-    {
-        $groups = null;
-
-        if ($form->hasAttribute('validation_groups')) {
-            $groups = $form->getAttribute('validation_groups');
-        }
-
-        $currentForm = $form;
-        while (!$groups && $currentForm->hasParent()) {
-            $currentForm = $currentForm->getParent();
-
-            if ($currentForm->hasAttribute('validation_groups')) {
-                $groups = $currentForm->getAttribute('validation_groups');
-            }
-        }
-
-        if (null === $groups) {
-            $groups = array('Default');
-        }
-
-        return (array) $groups;
-    }
 }

+ 5 - 5
src/Symfony/Component/Form/Extension/Validator/ValidatorExtension.php

@@ -24,15 +24,15 @@ class ValidatorExtension extends AbstractExtension
         $this->validator = $validator;
     }
 
+    public function loadTypeGuesser()
+    {
+        return new ValidatorTypeGuesser($this->validator->getMetadataFactory());
+    }
+
     protected function loadTypeExtensions()
     {
         return array(
             new Type\FieldTypeValidatorExtension($this->validator),
         );
     }
-
-    public function loadTypeGuesser()
-    {
-        return new ValidatorTypeGuesser($this->validator->getMetadataFactory());
-    }
 }

+ 32 - 32
src/Symfony/Component/Form/Extension/Validator/ValidatorTypeGuesser.php

@@ -63,38 +63,6 @@ class ValidatorTypeGuesser implements FormTypeGuesserInterface
         });
     }
 
-    /**
-     * Iterates over the constraints of a property, executes a constraints on
-     * them and returns the best guess
-     *
-     * @param string $class       The class to read the constraints from
-     * @param string $property    The property for which to find constraints
-     * @param \Closure $guessForConstraint   The closure that returns a guess
-     *                            for a given constraint
-     * @return Guess  The guessed value with the highest confidence
-     */
-    protected function guess($class, $property, \Closure $guessForConstraint)
-    {
-        $guesses = array();
-        $classMetadata = $this->metadataFactory->getClassMetadata($class);
-
-        if ($classMetadata->hasMemberMetadatas($property)) {
-            $memberMetadatas = $classMetadata->getMemberMetadatas($property);
-
-            foreach ($memberMetadatas as $memberMetadata) {
-                $constraints = $memberMetadata->getConstraints();
-
-                foreach ($constraints as $constraint) {
-                    if ($guess = $guessForConstraint($constraint)) {
-                        $guesses[] = $guess;
-                    }
-                }
-            }
-        }
-
-        return Guess::getBestGuess($guesses);
-    }
-
     /**
      * Guesses a field class name for a given constraint
      *
@@ -297,4 +265,36 @@ class ValidatorTypeGuesser implements FormTypeGuesserInterface
                 );
         }
     }
+
+    /**
+     * Iterates over the constraints of a property, executes a constraints on
+     * them and returns the best guess
+     *
+     * @param string $class       The class to read the constraints from
+     * @param string $property    The property for which to find constraints
+     * @param \Closure $guessForConstraint   The closure that returns a guess
+     *                            for a given constraint
+     * @return Guess  The guessed value with the highest confidence
+     */
+    protected function guess($class, $property, \Closure $guessForConstraint)
+    {
+        $guesses = array();
+        $classMetadata = $this->metadataFactory->getClassMetadata($class);
+
+        if ($classMetadata->hasMemberMetadatas($property)) {
+            $memberMetadatas = $classMetadata->getMemberMetadatas($property);
+
+            foreach ($memberMetadatas as $memberMetadata) {
+                $constraints = $memberMetadata->getConstraints();
+
+                foreach ($constraints as $constraint) {
+                    if ($guess = $guessForConstraint($constraint)) {
+                        $guesses[] = $guess;
+                    }
+                }
+            }
+        }
+
+        return Guess::getBestGuess($guesses);
+    }
 }

+ 45 - 45
src/Symfony/Component/Form/Form.php

@@ -876,6 +876,51 @@ class Form implements \IteratorAggregate, FormInterface
         return count($this->children);
     }
 
+    /**
+     * Creates a view.
+     *
+     * @param FormView $parent The parent view
+     *
+     * @return FormView The view
+     */
+    public function createView(FormView $parent = null)
+    {
+        if (null === $parent && $this->parent) {
+            $parent = $this->parent->createView();
+        }
+
+        $view = new FormView();
+
+        $view->setParent($parent);
+
+        $types = (array) $this->types;
+        $childViews = array();
+
+        foreach ($types as $type) {
+            $type->buildView($view, $this);
+
+            foreach ($type->getExtensions() as $typeExtension) {
+                $typeExtension->buildView($view, $this);
+            }
+        }
+
+        foreach ($this->children as $key => $child) {
+            $childViews[$key] = $child->createView($view);
+        }
+
+        $view->setChildren($childViews);
+
+        foreach ($types as $type) {
+            $type->buildViewBottomUp($view, $this);
+
+            foreach ($type->getExtensions() as $typeExtension) {
+                $typeExtension->buildViewBottomUp($view, $this);
+            }
+        }
+
+        return $view;
+    }
+
     /**
      * Normalizes the value if a normalization transformer is set.
      *
@@ -949,49 +994,4 @@ class Form implements \IteratorAggregate, FormInterface
 
         return $value;
     }
-
-    /**
-     * Creates a view.
-     *
-     * @param FormView $parent The parent view
-     *
-     * @return FormView The view
-     */
-    public function createView(FormView $parent = null)
-    {
-        if (null === $parent && $this->parent) {
-            $parent = $this->parent->createView();
-        }
-
-        $view = new FormView();
-
-        $view->setParent($parent);
-
-        $types = (array) $this->types;
-        $childViews = array();
-
-        foreach ($types as $type) {
-            $type->buildView($view, $this);
-
-            foreach ($type->getExtensions() as $typeExtension) {
-                $typeExtension->buildView($view, $this);
-            }
-        }
-
-        foreach ($this->children as $key => $child) {
-            $childViews[$key] = $child->createView($view);
-        }
-
-        $view->setChildren($childViews);
-
-        foreach ($types as $type) {
-            $type->buildViewBottomUp($view, $this);
-
-            foreach ($type->getExtensions() as $typeExtension) {
-                $typeExtension->buildViewBottomUp($view, $this);
-            }
-        }
-
-        return $view;
-    }
 }

+ 15 - 15
src/Symfony/Component/Form/FormFactory.php

@@ -40,21 +40,6 @@ class FormFactory implements FormFactoryInterface
         $this->extensions = $extensions;
     }
 
-    private function loadGuesser()
-    {
-        $guessers = array();
-
-        foreach ($this->extensions as $extension) {
-            $guesser = $extension->getTypeGuesser();
-
-            if ($guesser) {
-                $guessers[] = $guesser;
-            }
-        }
-
-        $this->guesser = new FormTypeGuesserChain($guessers);
-    }
-
     public function getType($name)
     {
         $type = null;
@@ -198,4 +183,19 @@ class FormFactory implements FormFactoryInterface
 
         return $this->createNamedBuilder($type, $property, $data, $options);
     }
+
+    private function loadGuesser()
+    {
+        $guessers = array();
+
+        foreach ($this->extensions as $extension) {
+            $guesser = $extension->getTypeGuesser();
+
+            if ($guesser) {
+                $guessers[] = $guesser;
+            }
+        }
+
+        $this->guesser = new FormTypeGuesserChain($guessers);
+    }
 }

+ 7 - 0
src/Symfony/Component/Form/FormTypeGuesserChain.php

@@ -18,6 +18,13 @@ class FormTypeGuesserChain implements FormTypeGuesserInterface
 {
     private $guessers = array();
 
+    /**
+     * Constructor.
+     *
+     * @param array $guessers Guessers as instances of FormTypeGuesserInterface
+     *
+     * @throws UnexpectedTypeException if any guesser does not implement FormTypeGuesserInterface
+     */
     public function __construct(array $guessers)
     {
         foreach ($guessers as $guesser) {