Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Patch for Validation constraints #743

Open
wants to merge 15 commits into
base: master
Choose a base branch
from
10 changes: 5 additions & 5 deletions book/validation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -575,7 +575,7 @@ cette méthode doit retourner ``true`` :
Acme\BlogBundle\Entity\Author:
getters:
passwordLegal:
- "True": { message: "Le mot de passe et le prénom doivent être différents" }
- "IsTrue": { message: "Le mot de passe et le prénom doivent être différents" }

.. code-block:: php-annotations

Expand All @@ -585,7 +585,7 @@ cette méthode doit retourner ``true`` :
class Author
{
/**
* @Assert\True(message = "Le mot de passe et le prénom doivent être différents")
* @Assert\IsTrue(message = "Le mot de passe et le prénom doivent être différents")
*/
public function isPasswordLegal()
{
Expand All @@ -598,7 +598,7 @@ cette méthode doit retourner ``true`` :
<!-- src/Acme/BlogBundle/Resources/config/validation.xml -->
<class name="Acme\BlogBundle\Entity\Author">
<getter property="passwordLegal">
<constraint name="True">
<constraint name="IsTrue">
<option name="message">Le mot de passe et le prénom doivent être différents</option>
</constraint>
</getter>
Expand All @@ -608,13 +608,13 @@ cette méthode doit retourner ``true`` :

// src/Acme/BlogBundle/Entity/Author.php
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints\True;
use Symfony\Component\Validator\Constraints\IsTrue;

class Author
{
public static function loadValidatorMetadata(ClassMetadata $metadata)
{
$metadata->addGetterConstraint('passwordLegal', new True(array(
$metadata->addGetterConstraint('passwordLegal', new IsTrue(array(
'message' => 'Le mot de passe et le prénom doivent être différents',
)));
}
Expand Down
4 changes: 3 additions & 1 deletion reference/constraints/False.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
False
=====

Cette classe est dépréciée et sera retirée de symfony 3.0. Utilisez plutôt la classe :doc:`IsFalse <IsFalse>`.

Valide que la valeur est ``false``. Spécifiquement, cette contrainte vérifie que la
valeur est exactement ``false``, exactement l'entier ``0``, ou exactement la chaîne
de caractères « ``0`` ».
Expand Down Expand Up @@ -108,4 +110,4 @@ message

**type**: ``string`` **default**: ``This value should be false``

Ce message s'affiche si la donnée n'est pas à ``False``.
Ce message s'affiche si la donnée n'est pas à ``False``.
111 changes: 111 additions & 0 deletions reference/constraints/IsFalse.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
IsFalse
=======

Valide que la valeur est ``false``. Spécifiquement, cette contrainte vérifie que la
valeur est exactement ``false``, exactement l'entier ``0``, ou exactement la chaîne
de caractères « ``0`` ».

Vous pouvez également voir :doc:`IsTrue <IsTrue>`.

+----------------+-----------------------------------------------------------------------+
| S'applique à | :ref:`propriété ou méthode<validation-property-target>` |
+----------------+-----------------------------------------------------------------------+
| Options | - `message`_ |
+----------------+-----------------------------------------------------------------------+
| Classe | :class:`Symfony\\Component\\Validator\\Constraints\\IsFalse` |
+----------------+-----------------------------------------------------------------------+
| Validateur | :class:`Symfony\\Component\\Validator\\Constraints\\IsFalseValidator` |
+----------------+-----------------------------------------------------------------------+

Utilisation de base
-------------------

La contrainte ``IsFalse`` s'applique à une propriété ou à une méthode « getter » mais
elle est le plus souvent utilisée dans le dernier cas. Par exemple, supposons
que vous vouliez garantir qu'une propriété ``state`` n'est *pas* dans un tableau
dynamique ``invalidStates``. Premièrement, vous créerez une méthode « getter »::

protected $state;

protected $invalidStates = array();

public function isStateInvalid()
{
return in_array($this->state, $this->invalidStates);
}

Dans ce cas, l'objet sous-jacent n'est valide que si la méthode ``isStateInvalid``
retourne **false** :

.. configuration-block::

.. code-block:: yaml

# src/BlogBundle/Resources/config/validation.yml
Acme\BlogBundle\Entity\Author
getters:
stateInvalid:
- "IsFalse":
message: Vous avez saisi un état non valide.

.. code-block:: php-annotations

// src/Acme/BlogBundle/Entity/Author.php
namespace Acme\BlogBundle\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Author
{
/**
* @Assert\IsFalse(
* message = "Vous avez saisi un état non valide."
* )
*/
public function isStateInvalid()
{
// ...
}
}

.. code-block:: xml

<!-- src/Acme/BlogBundle/Resources/config/validation.xml -->
<class name="Acme\BlogBundle\Entity\Author">
<getter property="stateInvalid">
<constraint name="IsFalse">
<option name="message">Vous avez saisi un état non valide.</option>
</constraint>
</getter>
</class>

.. code-block:: php

// src/Acme/BlogBundle/Entity/Author.php
namespace Acme\BlogBundle\Entity;

use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints as Assert;

class Author
{
public static function loadValidatorMetadata(ClassMetadata $metadata)
{
$metadata->addGetterConstraint('stateInvalid', new Assert\IsFalse());
}
}

.. caution::

Si vous utilisez YAML, assurez vous de bien mettre les guillemets autour de
``IsFalse`` (``"IsFalse"``), sinon YAML le convertira en Booléen.

Options
-------

message
~~~~~~~

**type**: ``string`` **default**: ``This value should be false``

Ce message s'affiche si la donnée n'est pas à ``False``.
84 changes: 84 additions & 0 deletions reference/constraints/IsNull.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
IsNull
======

Valide qu'une valeur est exactement égale à ``null``. Pour vous assurer qu'une
propriété soit simplement vide (une chaîne de caractères vide ou ``null``), lisez la
documentation de la contrainte :doc:`/reference/constraints/Blank`.
Pour vous assurer qu'une propriété ne soit pas nulle, lisez :doc:`/reference/constraints/NotNull`.


+----------------+-------------------------------------------------------------------------+
| S'applique à | :ref:`propriété ou méthode<validation-property-target>` |
+----------------+-------------------------------------------------------------------------+
| Options | - `message`_ |
+----------------+-------------------------------------------------------------------------+
| Classe | :class:`Symfony\\Component\\Validator\\Constraints\\IsNull` |
+----------------+-------------------------------------------------------------------------+
| Validateur | :class:`Symfony\\Component\\Validator\\Constraints\\IsNullValidator` |
+----------------+-------------------------------------------------------------------------+

Utilisation de base
-------------------

Si vous voulez vous assurer que la propriété ``firstName`` d'une classe ``Author``
soit exactement égale à ``null``, ajoutez le code suivant :

.. configuration-block::

.. code-block:: yaml

# src/Acme/BlogBundle/Resources/config/validation.yml
Acme\BlogBundle\Entity\Author:
properties:
firstName:
- 'IsNull': ~

.. code-block:: php-annotations

// src/Acme/BlogBundle/Entity/Author.php
namespace Acme\BlogBundle\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Author
{
/**
* @Assert\IsNull()
*/
protected $firstName;
}

.. code-block:: xml

<!-- src/Acme/BlogBundle/Resources/config/validation.xml -->
<class name="Acme\BlogBundle\Entity\Author">
<property name="firstName">
<constraint name="IsNull" />
</property>
</class>

.. code-block:: php

// src/Acme/BlogBundle/Entity/Author.php
namespace Acme\BlogBundle\Entity;

use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints as Assert;

class Author
{
public static function loadValidatorMetadata(ClassMetadata $metadata)
{
$metadata->addPropertyConstraint('firstName', Assert\IsNull());
}
}

Options
-------

message
~~~~~~~

**type**: ``string`` **default**: ``This value should be null``

Le message qui sera affiché si la valeur n'est pas égale à ``null``.
121 changes: 121 additions & 0 deletions reference/constraints/IsTrue.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
IsTrue
======

Valide qu'une valeur est ``vraie`` (« true » en anglais). Spécifiquement, cette contrainte
vérifie que la valeur est exactement ``true``, exactement l'entier ``1``, ou exactement
la chaîne de caractère « ``1`` ».

Lisez également :doc:`IsFalse <IsFalse>`.

+----------------+-----------------------------------------------------------------------+
| S'applique à | :ref:`propriété ou méthode<validation-property-target>` |
+----------------+-----------------------------------------------------------------------+
| Options | - `message`_ |
+----------------+-----------------------------------------------------------------------+
| Classe | :class:`Symfony\\Component\\Validator\\Constraints\\IsTrue` |
+----------------+-----------------------------------------------------------------------+
| Validateur | :class:`Symfony\\Component\\Validator\\Constraints\\IsTrueValidator` |
+----------------+-----------------------------------------------------------------------+

Utilisation de base
-------------------

Cette contrainte peut être appliquée à une propriété (par exemple : une propriété
``termsAccepted`` d'un formulaire d'inscription) ou une méthode « getter ». Elle est
plus puissante dans le second cas, où vous pouvez vérifier que la méthode retourne true.
Par exemple, supposons que vous ayez la méthode suivante :

.. code-block:: php

// src/Acme/BlogBundle/Entity/Author.php
namespace Acme\BlogBundle\Entity;

class Author
{
protected $token;

public function isTokenValid()
{
return $this->token == $this->generateToken();
}
}

Vous pouvez appliquer la contrainte ``IsTrue`` à cette méthode.

.. configuration-block::

.. code-block:: yaml

# src/Acme/BlogBundle/Resources/config/validation.yml
Acme\BlogBundle\Entity\Author:
getters:
tokenValid:
- "IsTrue": { message: "Le token est non valide." }

.. code-block:: php-annotations

// src/Acme/BlogBundle/Entity/Author.php
namespace Acme\BlogBundle\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Author
{
protected $token;

/**
* @Assert\IsTrue(message = "The token is invalid")
*/
public function isTokenValid()
{
return $this->token == $this->generateToken();
}
}

.. code-block:: xml

<!-- src/Acme/Blogbundle/Resources/config/validation.xml -->
<class name="Acme\BlogBundle\Entity\Author">
<getter property="tokenValid">
<constraint name="IsTrue">
<option name="message">Le token est non valide.</option>
</constraint>
</getter>
</class>

.. code-block:: php

// src/Acme/BlogBundle/Entity/Author.php
namespace Acme\BlogBundle\Entity;

use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints\IsTrue;

class Author
{
protected $token;

public static function loadValidatorMetadata(ClassMetadata $metadata)
{
$metadata->addGetterConstraint('tokenValid', new IsTrue(array(
'message' => 'Le token est non valide.',
)));
}

public function isTokenValid()
{
return $this->token == $this->generateToken();
}
}

Si la méthode ``isTokenValid()`` retourne false, la validation échouera.

Options
-------

message
~~~~~~~

**type**: ``string`` **default**: ``This value should be true``

Le message qui sera affiché si la donnée ne vaut pas true.
4 changes: 3 additions & 1 deletion reference/constraints/Null.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
Null
====

Cette classe est dépréciée et sera retirée de symfony 3.0. Utilisez plutôt la classe :doc:`IsNull <IsNull>`.

Valide qu'une valeur est exactement égale à ``null``. Pour vous assurer qu'une
propriété soit simplement vide (une chaîne de caractères vide ou ``null``), lisez la
documentation de la contrainte :doc:`/reference/constraints/Blank`.
Expand Down Expand Up @@ -81,4 +83,4 @@ message

**type**: ``string`` **default**: ``This value should be null``

Le message qui sera affiché si la valeur n'est pas égale à ``null``.
Le message qui sera affiché si la valeur n'est pas égale à ``null``.
Loading