getGraphWalker() public method

public getGraphWalker ( ) : Symfony\Component\Validator\GraphWalker
return Symfony\Component\Validator\GraphWalker
 public function testInit()
 {
     $this->assertCount(0, $this->context->getViolations());
     $this->assertSame('Root', $this->context->getRoot());
     $this->assertSame('foo.bar', $this->context->getPropertyPath());
     $this->assertSame('Group', $this->context->getGroup());
     $this->visitor->expects($this->once())->method('getGraphWalker')->will($this->returnValue('GRAPHWALKER'));
     // BC
     set_error_handler(array($this, "deprecationErrorHandler"));
     $this->assertNull($this->context->getCurrentClass());
     $this->assertNull($this->context->getCurrentProperty());
     $this->assertSame('GRAPHWALKER', $this->context->getGraphWalker());
     $this->assertSame($this->metadataFactory, $this->context->getMetadataFactory());
     restore_error_handler();
 }
 public static function validateFormChildren(FormInterface $form, ExecutionContext $context)
 {
     if ($form->getAttribute('cascade_validation')) {
         $propertyPath = $context->getPropertyPath();
         $graphWalker = $context->getGraphWalker();
         // Adjust the property path accordingly
         if (!empty($propertyPath)) {
             $propertyPath .= '.';
         }
         $propertyPath .= 'children';
         $graphWalker->walkReference($form->getChildren(), Constraint::DEFAULT_GROUP, $propertyPath, true);
     }
 }
示例#3
0
 /**
  * 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);
         }
     }
 }
示例#4
0
 public static function validateFormChildren(FormInterface $form, ExecutionContext $context)
 {
     if ($form->getAttribute('cascade_validation')) {
         $propertyPath = $context->getPropertyPath();
         $graphWalker = $context->getGraphWalker();
         // The Execute constraint is called on class level, so we need to
         // set the property manually
         $context->setCurrentProperty('children');
         // Adjust the property path accordingly
         if (!empty($propertyPath)) {
             $propertyPath .= '.';
         }
         $propertyPath .= 'children';
         foreach (self::getFormValidationGroups($form) as $group) {
             $graphWalker->walkReference($form->getChildren(), $group, $propertyPath, true);
         }
     }
 }
示例#5
0
 /**
  * @param  ExecutionContext $context
  * @return bool
  */
 public function isValidCustomer(ExecutionContext $context)
 {
     // https://gist.github.com/888267
     if (true === $this->known_customer) {
         $this->customer = $this->em->getRepository('AcmePizzaBundle:Customer')->findOneBy(array('phone' => $this->known_phone));
         if (false === $this->customer instanceof Customer) {
             $property_path = $context->getPropertyPath() . '.known_phone';
             $context->setPropertyPath($property_path);
             $context->addViolation('Phone number is not registered', array(), null);
         }
     } else {
         /*
         $context->setGroup('MyTest');
         var_dump($context->getGroup());
         */
         $group = $context->getGroup();
         $group = 'Customer';
         $context->getGraphWalker()->walkReference($this->customer, $group, $context->getPropertyPath() . ".customer", true);
     }
     /*
     if (!($this->customer instanceof Customer)) {
         $context->addViolation('Invalid customer given', array(), $this->customer);
     }
     */
 }
示例#6
0
 /**
  * Validates the data of this form
  *
  * This method is called automatically during the validation process.
  *
  * @param ExecutionContext $context  The current validation context
  */
 public function validateData(ExecutionContext $context)
 {
     if (is_object($this->getData()) || is_array($this->getData())) {
         $groups = $this->getValidationGroups();
         $propertyPath = $context->getPropertyPath();
         $graphWalker = $context->getGraphWalker();
         if (null === $groups) {
             $groups = array(null);
         }
         // 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 ($groups as $group) {
             $graphWalker->walkReference($this->getData(), $group, $propertyPath, true);
         }
     }
 }
示例#7
0
 /**
  * @param ExecutionContext $ec
  */
 public function validateCreation(ExecutionContext $ec)
 {
     if (null === $this->getHandle()) {
         $ec->getGraphWalker()->walkReference($this, 'create', $ec->getPropertyPath(), true);
     }
 }