diff --git a/reference/constraints/Url.rst b/reference/constraints/Url.rst
index a1ca08a4a34..a30c1f31ce1 100644
--- a/reference/constraints/Url.rst
+++ b/reference/constraints/Url.rst
@@ -9,6 +9,7 @@ Validates that a value is a valid URL string.
| Options | - `message`_ |
| | - `protocols`_ |
| | - `payload`_ |
+| | - `checkDNS`_ |
+----------------+---------------------------------------------------------------------+
| Class | :class:`Symfony\\Component\\Validator\\Constraints\\Url` |
+----------------+---------------------------------------------------------------------+
@@ -84,13 +85,216 @@ message
This message is shown if the URL is invalid.
+.. configuration-block::
+
+ .. code-block:: php-annotations
+
+ // src/Acme/BlogBundle/Entity/Author.php
+ namespace Acme\BlogBundle\Entity;
+
+ use Symfony\Component\Validator\Constraints as Assert;
+
+ class Author
+ {
+ /**
+ * @Assert\Url(
+ * message = "The url '{{ value }}' is not a valid url",
+ * )
+ */
+ protected $bioUrl;
+ }
+
+ .. code-block:: yaml
+
+ # src/Acme/BlogBundle/Resources/config/validation.yml
+ Acme\BlogBundle\Entity\Author:
+ properties:
+ bioUrl:
+ - Url:
+ message: The url "{{ value }}" is not a valid url.
+
+ .. code-block:: xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .. 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('bioUrl', new Assert\Url(array(
+ 'message' => 'The url "{{ value }}" is not a valid url.',
+ )));
+ }
+ }
+
protocols
~~~~~~~~~
**type**: ``array`` **default**: ``array('http', 'https')``
-The protocols that will be considered to be valid. For example, if you also
-needed ``ftp://`` type URLs to be valid, you'd redefine the ``protocols``
-array, listing ``http``, ``https`` and also ``ftp``.
+The protocols considered to be valid for the URL. For example, if you also consider
+the ``ftp://`` type URLs to be valid, redefine the ``protocols`` array, listing
+``http``, ``https``, and also ``ftp``.
+
+.. configuration-block::
+
+ .. code-block:: php-annotations
+
+ // src/Acme/BlogBundle/Entity/Author.php
+ namespace Acme\BlogBundle\Entity;
+
+ use Symfony\Component\Validator\Constraints as Assert;
+
+ class Author
+ {
+ /**
+ * @Assert\Url(
+ * protocols = {"http", "https", "ftp"}
+ * )
+ */
+ protected $bioUrl;
+ }
+
+ .. code-block:: yaml
+
+ # src/Acme/BlogBundle/Resources/config/validation.yml
+ Acme\BlogBundle\Entity\Author:
+ properties:
+ bioUrl:
+ - Url: { protocols: [http, https, ftp] }
+
+ .. code-block:: xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .. 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('bioUrl', new Assert\Url(array(
+ 'protocols' => array('http', 'https', 'ftp'),
+ )));
+ }
+ }
.. include:: /reference/constraints/_payload-option.rst.inc
+
+checkDNS
+~~~~~~~~
+
+**type**: ``boolean`` **default**: ``false``
+
+By default, this constraint just validates the syntax of the given URL. If you
+also need to check whether the associated host exists, set the ``checkDNS``
+option to ``true``:
+
+.. configuration-block::
+
+ .. code-block:: php-annotations
+
+ // src/Acme/BlogBundle/Entity/Author.php
+ namespace Acme\BlogBundle\Entity;
+
+ use Symfony\Component\Validator\Constraints as Assert;
+
+ class Author
+ {
+ /**
+ * @Assert\Url(
+ * checkDNS = true
+ * )
+ */
+ protected $bioUrl;
+ }
+
+ .. code-block:: yaml
+
+ # src/Acme/BlogBundle/Resources/config/validation.yml
+ Acme\BlogBundle\Entity\Author:
+ properties:
+ bioUrl:
+ - Url: { checkDNS: true }
+
+ .. code-block:: xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .. 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('bioUrl', new Assert\Url(array(
+ 'checkDNS' => true,
+ )));
+ }
+ }
+
+This option uses the :phpfunction:`checkdnsrr` PHP function to check the validity
+of the ``ANY`` DNS record corresponding to the host associated with the given URL.