8000 fixing constraint documentation errors as mentioned in comments · catchamonkey/symfony-docs@1e7711a · GitHub
[go: up one dir, main page]

Skip to content

Commit 1e7711a

Browse files
committed
fixing constraint documentation errors as mentioned in comments
1 parent b3688d4 commit 1e7711a

File tree

1 file changed

+64
-22
lines changed

1 file changed

+64
-22
lines changed

cookbook/validation/custom_constraint.rst

Lines changed: 64 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ How to create a Custom Validation Constraint
66

77
You can create a custom constraint by extending the base constraint class,
88
:class:`Symfony\\Component\\Validator\\Constraint`.
9-
As an example we're going to create a simple validator that checks if string contains only alphanumeric characters.
9+
As an example we're going to create a simple validator that checks if string
10+
contains only alphanumeric characters.
1011

1112
Creating Constraint class
1213
-------------------------
@@ -78,32 +79,73 @@ The validator class is also simple, and only has one required method: ``isValid`
7879
Using newly created validator
7980
-----------------------------
8081

81-
Using custom validators is very easy, just as the ones provided by Symfony2 itself::
82+
Using custom validators is very easy, just as the ones provided by Symfony2 itself:
8283

83-
namespace Acme\DemoBundle\Entity;
84+
.. configuration-block::
8485

85-
use Doctrine\ORM\Mapping as ORM;
86-
use Symfony\Component\Validator\Constraints as Assert;
87-
use Acme\DemoBundle\Validator\Constraints as AcmeAssert;
86+
.. code-block:: yaml
8887
89-
class AcmeEntity
90-
{
91-
/**
92-
* @ORM\Id
93-
* @ORM\GeneratedValue
94-
* @ORM\Column(name="id", type="integer")
95-
*/
96-
protected $id;
88+
# src/Acme/BlogBundle/Resources/config/validation.yml
89+
Acme\DemoBundle\Entity\AcmeEntity:
90+
properties:
91+
name:
92+
- NotBlank: ~
93+
- Acme\DemoBundle\Validator\Constraints\ContainsAlphanumeric: ~
94+
95+
.. code-block:: php-annotations
96+
97+
// src/Acme/DemoBundle/Entity/AcmeEntity.php
9798
98-
/**
99-
* @Assert\NotBlank
100-
* @AcmeAssert\ContainsAlphanumeric
101-
* @ORM\Column(name="name", type="string", length=100)
102-
*/
103-
protected $name;
99+
use Symfony\Component\Validator\Constraints as Assert;
100+
use Acme\DemoBundle\Validator\Constraints as AcmeAssert;
101+
102+
class AcmeEntity
103+
{
104+
// ...
105+
106+
/**
107+
* @Assert\NotBlank
108+
* @AcmeAssert\ContainsAlphanumeric
109+
*/
110+
protected $name;
111+
112+
// ...
113+
}
114+
115+
.. code-block:: xml
104116
105-
// ...
106-
}
117+
<!-- src/Acme/DemoBundle/Resources/config/validation.xml -->
118+
<?xml version="1.0" encoding="UTF-8" ?>
119+
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
120+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
121+
xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
122+
123+
<class name="Acme\DemoBundle\Entity\AcmeEntity">
124+
<property name="name">
125+
<constraint name="NotBlank" />
126+
<constraint name="Acme\DemoBundle\Validator\Constraints\ContainsAlphanumeric" />
127+
</property>
128+
</class>
129+
</constraint-mapping>
130+
131+
.. code-block:: php
132+
133+
// src/Acme/DemoBundle/Entity/AcmeEntity.php
134+
135+
use Symfony\Component\Validator\Mapping\ClassMetadata;
136+
use Symfony\Component\Validator\Constraints\NotBlank;
137+
use Acme\DemoBundle\Validator\Constraints\ContainsAlphanumeric;
138+
139+
class AcmeEntity
140+
{
141+
public $name;
142+
143+
public static function loadValidatorMetadata(ClassMetadata $metadata)
144+
{
145+
$metadata->addPropertyConstraint('name', new NotBlank());
146+
$metadata->addPropertyConstraint('name', new ContainsAlph 51C9 anumeric());
147+
}
148+
}
107149
108150
Constraint Validators with Dependencies
109151
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

0 commit comments

Comments
 (0)
0