@@ -35,8 +35,8 @@ Configuration
3535
3636 .. code-block :: php-annotations
3737
38- // src/Acme/BlogBundle /Entity/Author.php
39- namespace Acme\BlogBundle \Entity;
38+ // src/AppBundle /Entity/Author.php
39+ namespace AppBundle \Entity;
4040
4141 use Symfony\Component\Validator\Constraints as Assert;
4242 use Symfony\Component\Validator\Context\ExecutionContextInterface;
@@ -56,28 +56,28 @@ Configuration
5656
5757 .. code-block :: yaml
5858
59- # src/Acme/BlogBundle /Resources/config/validation.yml
60- Acme\BlogBundle \Entity\Author :
59+ # src/AppBundle /Resources/config/validation.yml
60+ AppBundle \Entity\Author :
6161 constraints :
6262 - Callback : [validate]
6363
6464 .. code-block :: xml
6565
66- <!-- src/Acme/BlogBundle /Resources/config/validation.xml -->
66+ <!-- src/AppBundle /Resources/config/validation.xml -->
6767 <?xml version =" 1.0" encoding =" UTF-8" ?>
6868 <constraint-mapping xmlns =" http://symfony.com/schema/dic/constraint-mapping"
6969 xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
7070 xsi : schemaLocation =" http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd" >
7171
72- <class name =" Acme\BlogBundle \Entity\Author" >
72+ <class name =" AppBundle \Entity\Author" >
7373 <constraint name =" Callback" >validate</constraint >
7474 </class >
7575 </constraint-mapping >
7676
7777 .. code-block :: php
7878
79- // src/Acme/BlogBundle /Entity/Author.php
80- namespace Acme\BlogBundle \Entity;
79+ // src/AppBundle /Entity/Author.php
80+ namespace AppBundle \Entity;
8181
8282 use Symfony\Component\Validator\Mapping\ClassMetadata;
8383 use Symfony\Component\Validator\Constraints as Assert;
@@ -185,57 +185,69 @@ You can then use the following configuration to invoke this validator:
185185
186186 .. code-block :: php-annotations
187187
188- // src/Acme/BlogBundle /Entity/Author.php
188+ // src/AppBundle /Entity/Author.php
189189 namespace Acme\BlogBundle\Entity;
190190
191191 use Symfony\Component\Validator\Constraints as Assert;
192192
193193 /**
194- * @Assert\Callback({"Vendor\Package\Validator ", "validate "})
194+ * @Assert\Callback({"AppBundle\MyStaticValidatorClass ", "isAuthorValid "})
195195 */
196196 class Author
197197 {
198198 }
199199
200200 .. code-block :: yaml
201201
202- # src/Acme/BlogBundle/Resources/config/validation.yml
203- Acme\BlogBundle\Entity\Author :
204- constraints :
205- - Callback : [Vendor\Package\Validator, validate]
202+ # src/AppBundle/Resources/config/validation.yml
203+ AppBundle\E ntity\A uthor:
204+ constraints:
205+ - Callback:
206+ methods:
207+ - [AppBundle\M yStaticValidatorClass, isAuthorValid]
206208
207209 .. code-block :: xml
208210
209- <!-- src/Acme/BlogBundle/Resources/config/validation.xml -->
210- <?xml version =" 1.0" encoding =" UTF-8" ?>
211- <constraint-mapping xmlns =" http://symfony.com/schema/dic/constraint-mapping"
212- xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
213- xsi : schemaLocation =" http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd" >
214-
215- <class name =" Acme\BlogBundle\Entity\Author" >
216- <constraint name =" Callback" >
217- <value >Vendor\Package\Validator</value >
218- <value >validate</value >
219- </constraint >
220- </class >
221- </constraint-mapping >
211+ <!-- src/AppBundle/Resources/config/validation.xml -->
212+ <?xml version="1.0" encoding="UTF-8" ?>
213+ <constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
214+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
215+ xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
216+
217+ <class name="AppBundle\E ntity\A uthor">
218+ <constraint name="Callback">
219+ <option name="methods">
220+ <value>
221+ <value>AppBundle\M yStaticValidatorClass</value>
222+ <value>isAuthorValid</value>
223+ </value>
224+ </option>
225+ </constraint>
226+ </class>
227+ </constraint-mapping>
222228
223229 .. code-block :: php
224230
225- // src/Acme/BlogBundle /Entity/Author.php
226- namespace Acme\BlogBundle \Entity;
231+ // src/AppBundle /Entity/Author.php
232+ namespace AppBundle \E ntity;
227233
228234 use Symfony\C omponent\V alidator\M apping\C lassMetadata;
229235 use Symfony\C omponent\V alidator\C onstraints as Assert;
230236
231237 class Author
232238 {
239+ public $name;
240+
233241 public static function loadValidatorMetadata(ClassMetadata $metadata)
234242 {
235- $metadata->addConstraint(new Assert\Callback(array(
236- 'Vendor\Package\Validator',
237- 'validate',
238- )));
243+ $metadata->addConstraint(new Callback(array(
244+ 'methods' => array(
245+ array(
246+ 'AppBundle\M yStaticValidatorClass',
247+ 'isAuthorValid',
248+ ),
249+ ),
250+ )));
239251 }
240252 }
241253
@@ -250,8 +262,11 @@ You can then use the following configuration to invoke this validator:
250262When configuring the constraint via PHP, you can also pass a closure to the
251263constructor of the Callback constraint::
252264
253- // src/Acme/BlogBundle/Entity/Author.php
254- namespace Acme\BlogBundle\Entity;
265+ // src/AppBundle/Entity/Author.php
266+ namespace AppBundle\Entity;
267+
268+ use Symfony\Component\Validator\ExecutionContextInterface;
269+ use AppBundle\Entity\Author;
255270
256271 use Symfony\Component\Validator\Mapping\ClassMetadata;
257272 use Symfony\Component\Validator\Constraints as Assert;
0 commit comments