diff --git a/reference/constraints.rst b/reference/constraints.rst index 1ed9b35649b..4aa70dfef19 100644 --- a/reference/constraints.rst +++ b/reference/constraints.rst @@ -38,6 +38,7 @@ Validation Constraints Reference constraints/CardScheme constraints/Luhn + constraints/Isbn constraints/Callback constraints/All diff --git a/reference/constraints/Isbn.rst b/reference/constraints/Isbn.rst new file mode 100644 index 00000000000..d4502dd141d --- /dev/null +++ b/reference/constraints/Isbn.rst @@ -0,0 +1,136 @@ +Isbn +==== + +.. versionadded:: New in version 2.3: + The Isbn validation were added in Symfony 2.3. + +This constraint permits that a ISBN (International Standard Book Numbers) +number is either a valid ISBN-10, a valid ISBN-13 code or both on a value. + ++----------------+----------------------------------------------------------------------+ +| Applies to | :ref:`property or method` | ++----------------+----------------------------------------------------------------------+ +| Options | - `isbn10Message`_ | +| | - `isbn13Message`_ | +| | - `bothIsbnMessage`_ | +| | - `isbn10`_ | +| | - `isbn13`_ | ++----------------+----------------------------------------------------------------------+ +| Class | :class:`Symfony\\Component\\Validator\\Constraints\\Isbn` | ++----------------+----------------------------------------------------------------------+ +| Validator | :class:`Symfony\\Component\\Validator\\Constraints\\IsbnValidator` | ++----------------+----------------------------------------------------------------------+ + +Basic Usage +----------- + +To use the ``Isbn`` validator, simply apply it to a property or method +on an object that will contain a ISBN number. + +.. configuration-block:: + + .. code-block:: yaml + + # src/Acme/BookcaseBunlde/Resources/config/validation.yml + Acme\BookcaseBunlde\Entity\Book: + properties: + isbn: + - Isbn: + isbn10: true + isbn13: true + bothIsbnMessage: This value is neither a valid ISBN-10 nor a valid ISBN-13. + + .. code-block:: xml + + + + + + + + + + + + + .. code-block:: php-annotations + + // src/Acme/BookcaseBunlde/Entity/Book.php + use Symfony\Component\Validator\Constraints as Assert; + + class Book + { + /** + * @Assert\Isbn( + * isbn10 = true, + * isbn13 = true, + * bothIsbnMessage = "This value is neither a valid ISBN-10 nor a valid ISBN-13." + * ) + */ + protected $isbn; + } + + .. code-block:: php + + // src/Acme/BookcaseBunlde/Entity/Book.php + namespace Acme\BookcaseBunlde\Entity; + + use Symfony\Component\Validator\Mapping\ClassMetadata; + use Symfony\Component\Validator\Constraints as Assert; + + class Book + { + protected $isbn; + + public static function loadValidatorMetadata(ClassMetadata $metadata) + { + $metadata->addPropertyConstraint('isbn', new Assert\Isbn(array( + 'isbn10' => true, + 'isbn13' => true, + 'bothIsbnMessage' => 'This value is neither a valid ISBN-10 nor a valid ISBN-13.' + ))); + } + } + +Available Options +----------------- + +isbn10Message +~~~~~~~~~~~~~ + +**type**: ``string`` **default**: ``This value is not a valid ISBN-10.`` + +The message that will be shown if the option isbn10 is true +and the given value does not pass the ISBN-10 check. + +isbn13Message +~~~~~~~~~~~~~ + +**type**: ``string`` **default**: ``This value is not a valid ISBN-13.`` + +The message that will be shown if the option isbn13 is true +and the given value does not pass the ISBN-13 check. + +bothIsbnMessage +~~~~~~~~~~~~~~~ + +**type**: ``string`` **default**: ``This value is neither a valid ISBN-10 nor a valid ISBN-13.`` + +The message that will be shown if the options (isbn10, isbn13) is true +and the given value does not pass the ISBN-13 nor ISBN-13 check. + +isbn10 +~~~~~~ + +**type**: ``boolean`` [:ref:`default option`] + +If this required option is set to ``true`` the constraint will check +if the code is a valid ISBN-10 code. + +isbn13 +~~~~~~ + +**type**: ``boolean`` [:ref:`default option`] + +If this required option is set to ``true`` the constraint will check +if the code is a valid ISBN-13 code. diff --git a/reference/constraints/map.rst.inc b/reference/constraints/map.rst.inc index 3d10d637ccf..0bcff75f82c 100644 --- a/reference/constraints/map.rst.inc +++ b/reference/constraints/map.rst.inc @@ -55,6 +55,7 @@ Financial Constraints * :doc:`CardScheme ` * :doc:`Luhn ` +* :doc:`Isbn ` Other Constraints ~~~~~~~~~~~~~~~~~