diff --git a/src/Symfony/Component/Validator/Mapping/Loader/XmlFileLoader.php b/src/Symfony/Component/Validator/Mapping/Loader/XmlFileLoader.php index ef130d4b42..d95d975377 100644 --- a/src/Symfony/Component/Validator/Mapping/Loader/XmlFileLoader.php +++ b/src/Symfony/Component/Validator/Mapping/Loader/XmlFileLoader.php @@ -43,6 +43,12 @@ class XmlFileLoader extends FileLoader if (isset($this->classes[$metadata->getClassName()])) { $xml = $this->classes[$metadata->getClassName()]; + foreach ($xml->{'group-sequence'} as $groupSequence) { + if (count($groupSequence->value) > 0) { + $metadata->setGroupSequence($this->parseValues($groupSequence[0]->value)); + } + } + foreach ($this->parseConstraints($xml->constraint) as $constraint) { $metadata->addConstraint($constraint); } diff --git a/src/Symfony/Component/Validator/Mapping/Loader/YamlFileLoader.php b/src/Symfony/Component/Validator/Mapping/Loader/YamlFileLoader.php index c25e49cab3..98e65e959d 100644 --- a/src/Symfony/Component/Validator/Mapping/Loader/YamlFileLoader.php +++ b/src/Symfony/Component/Validator/Mapping/Loader/YamlFileLoader.php @@ -54,6 +54,10 @@ class YamlFileLoader extends FileLoader if (isset($this->classes[$metadata->getClassName()])) { $yaml = $this->classes[$metadata->getClassName()]; + if (isset($yaml['group_sequence'])) { + $metadata->setGroupSequence($yaml['group_sequence']); + } + if (isset($yaml['constraints'])) { foreach ($this->parseNodes($yaml['constraints']) as $constraint) { $metadata->addConstraint($constraint); diff --git a/src/Symfony/Component/Validator/Mapping/Loader/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd b/src/Symfony/Component/Validator/Mapping/Loader/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd index c9acb28425..1afd453199 100644 --- a/src/Symfony/Component/Validator/Mapping/Loader/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd +++ b/src/Symfony/Component/Validator/Mapping/Loader/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd @@ -52,12 +52,25 @@ ]]> + + + + + + + + + + diff --git a/tests/Symfony/Tests/Component/Validator/Mapping/Loader/XmlFileLoaderTest.php b/tests/Symfony/Tests/Component/Validator/Mapping/Loader/XmlFileLoaderTest.php index 8746422aac..6b4450fa24 100644 --- a/tests/Symfony/Tests/Component/Validator/Mapping/Loader/XmlFileLoaderTest.php +++ b/tests/Symfony/Tests/Component/Validator/Mapping/Loader/XmlFileLoaderTest.php @@ -51,6 +51,7 @@ class XmlFileLoaderTest extends \PHPUnit_Framework_TestCase $loader->loadClassMetadata($metadata); $expected = new ClassMetadata('Symfony\Tests\Component\Validator\Fixtures\Entity'); + $expected->setGroupSequence(array('Foo', 'Entity')); $expected->addConstraint(new ConstraintA()); $expected->addConstraint(new ConstraintB()); $expected->addPropertyConstraint('firstName', new NotNull()); diff --git a/tests/Symfony/Tests/Component/Validator/Mapping/Loader/YamlFileLoaderTest.php b/tests/Symfony/Tests/Component/Validator/Mapping/Loader/YamlFileLoaderTest.php index b661efbf94..2b86d97d05 100644 --- a/tests/Symfony/Tests/Component/Validator/Mapping/Loader/YamlFileLoaderTest.php +++ b/tests/Symfony/Tests/Component/Validator/Mapping/Loader/YamlFileLoaderTest.php @@ -69,6 +69,7 @@ class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase $loader->loadClassMetadata($metadata); $expected = new ClassMetadata('Symfony\Tests\Component\Validator\Fixtures\Entity'); + $expected->setGroupSequence(array('Foo', 'Entity')); $expected->addConstraint(new ConstraintA()); $expected->addConstraint(new ConstraintB()); $expected->addPropertyConstraint('firstName', new NotNull()); diff --git a/tests/Symfony/Tests/Component/Validator/Mapping/Loader/constraint-mapping.xml b/tests/Symfony/Tests/Component/Validator/Mapping/Loader/constraint-mapping.xml index 03c2467951..ff24b3d100 100644 --- a/tests/Symfony/Tests/Component/Validator/Mapping/Loader/constraint-mapping.xml +++ b/tests/Symfony/Tests/Component/Validator/Mapping/Loader/constraint-mapping.xml @@ -8,6 +8,11 @@ + + Foo + Entity + + diff --git a/tests/Symfony/Tests/Component/Validator/Mapping/Loader/constraint-mapping.yml b/tests/Symfony/Tests/Component/Validator/Mapping/Loader/constraint-mapping.yml index ea1ba6fec9..1a28625a87 100644 --- a/tests/Symfony/Tests/Component/Validator/Mapping/Loader/constraint-mapping.yml +++ b/tests/Symfony/Tests/Component/Validator/Mapping/Loader/constraint-mapping.yml @@ -2,6 +2,10 @@ namespaces: custom: Symfony\Tests\Component\Validator\Fixtures\ Symfony\Tests\Component\Validator\Fixtures\Entity: + group_sequence: + - Foo + - Entity + constraints: # Custom constraint - Symfony\Tests\Component\Validator\Fixtures\ConstraintA: ~