From e9beedc7f9d2b272caad8c9c48697ce6a2c95b4d Mon Sep 17 00:00:00 2001 From: Maciej Malarz Date: Fri, 3 Apr 2015 11:05:05 +0200 Subject: [PATCH] [DX] Adding bool and integer types and annotations --- docs/en/reference/annotations-reference.rst | 33 +++++++++++++++++++ .../ODM/MongoDB/Mapping/Annotations/Bool.php | 26 +++++++++++++++ .../Annotations/DoctrineAnnotations.php | 2 ++ .../MongoDB/Mapping/Annotations/Integer.php | 26 +++++++++++++++ lib/Doctrine/ODM/MongoDB/Types/Type.php | 6 +++- .../Tests/Functional/Ticket/GH611Test.php | 2 +- .../Tests/Functional/Ticket/MODM67Test.php | 10 +++--- 7 files changed, 98 insertions(+), 7 deletions(-) create mode 100644 lib/Doctrine/ODM/MongoDB/Mapping/Annotations/Bool.php create mode 100644 lib/Doctrine/ODM/MongoDB/Mapping/Annotations/Integer.php diff --git a/docs/en/reference/annotations-reference.rst b/docs/en/reference/annotations-reference.rst index 49fd0ebea0..631fb16d8c 100644 --- a/docs/en/reference/annotations-reference.rst +++ b/docs/en/reference/annotations-reference.rst @@ -126,6 +126,19 @@ value to `MongoBinData`_ with ``MongoBinData::UUID_RFC4122`` sub-type. RFC 4122 UUIDs must be 16 bytes. The PHP driver will throw an exception if the binary data's size is invalid. +@Bool +-------- + +Alias of `@Field`_, with "type" attribute set to "bool". Internally it uses +exactly same logic as `@Boolean`_ annotation and "boolean" type. + +.. code-block:: php + + . + */ + +namespace Doctrine\ODM\MongoDB\Mapping\Annotations; + +/** @Annotation */ +final class Bool extends AbstractField +{ + public $type = 'bool'; +} diff --git a/lib/Doctrine/ODM/MongoDB/Mapping/Annotations/DoctrineAnnotations.php b/lib/Doctrine/ODM/MongoDB/Mapping/Annotations/DoctrineAnnotations.php index f3ff31986d..2867168ed3 100644 --- a/lib/Doctrine/ODM/MongoDB/Mapping/Annotations/DoctrineAnnotations.php +++ b/lib/Doctrine/ODM/MongoDB/Mapping/Annotations/DoctrineAnnotations.php @@ -36,8 +36,10 @@ require_once __DIR__ . '/Field.php'; require_once __DIR__ . '/Id.php'; require_once __DIR__ . '/Hash.php'; +require_once __DIR__ . '/Bool.php'; require_once __DIR__ . '/Boolean.php'; require_once __DIR__ . '/Int.php'; +require_once __DIR__ . '/Integer.php'; require_once __DIR__ . '/Float.php'; require_once __DIR__ . '/String.php'; require_once __DIR__ . '/Date.php'; diff --git a/lib/Doctrine/ODM/MongoDB/Mapping/Annotations/Integer.php b/lib/Doctrine/ODM/MongoDB/Mapping/Annotations/Integer.php new file mode 100644 index 0000000000..527861ab05 --- /dev/null +++ b/lib/Doctrine/ODM/MongoDB/Mapping/Annotations/Integer.php @@ -0,0 +1,26 @@ +. + */ + +namespace Doctrine\ODM\MongoDB\Mapping\Annotations; + +/** @Annotation */ +final class Integer extends AbstractField +{ + public $type = 'integer'; +} diff --git a/lib/Doctrine/ODM/MongoDB/Types/Type.php b/lib/Doctrine/ODM/MongoDB/Types/Type.php index d0535f21da..c80c155551 100644 --- a/lib/Doctrine/ODM/MongoDB/Types/Type.php +++ b/lib/Doctrine/ODM/MongoDB/Types/Type.php @@ -33,8 +33,10 @@ abstract class Type const ID = 'id'; const INTID = 'int_id'; const CUSTOMID = 'custom_id'; + const BOOL = 'bool'; const BOOLEAN = 'boolean'; - const INTEGER = 'int'; + const INT = 'int'; + const INTEGER = 'integer'; const FLOAT = 'float'; const STRING = 'string'; const DATE = 'date'; @@ -62,7 +64,9 @@ abstract class Type self::ID => 'Doctrine\ODM\MongoDB\Types\IdType', self::INTID => 'Doctrine\ODM\MongoDB\Types\IntIdType', self::CUSTOMID => 'Doctrine\ODM\MongoDB\Types\CustomIdType', + self::BOOL => 'Doctrine\ODM\MongoDB\Types\BooleanType', self::BOOLEAN => 'Doctrine\ODM\MongoDB\Types\BooleanType', + self::INT => 'Doctrine\ODM\MongoDB\Types\IntType', self::INTEGER => 'Doctrine\ODM\MongoDB\Types\IntType', self::FLOAT => 'Doctrine\ODM\MongoDB\Types\FloatType', self::STRING => 'Doctrine\ODM\MongoDB\Types\StringType', diff --git a/tests/Doctrine/ODM/MongoDB/Tests/Functional/Ticket/GH611Test.php b/tests/Doctrine/ODM/MongoDB/Tests/Functional/Ticket/GH611Test.php index a5e4845f9d..14f27abac8 100644 --- a/tests/Doctrine/ODM/MongoDB/Tests/Functional/Ticket/GH611Test.php +++ b/tests/Doctrine/ODM/MongoDB/Tests/Functional/Ticket/GH611Test.php @@ -128,7 +128,7 @@ class GH611Document /** @ODM\EmbeddedDocument */ class GH611EmbeddedDocument { - /** @ODM\Int */ + /** @ODM\Integer */ public $id; /** @ODM\String(name="n") */ diff --git a/tests/Doctrine/ODM/MongoDB/Tests/Functional/Ticket/MODM67Test.php b/tests/Doctrine/ODM/MongoDB/Tests/Functional/Ticket/MODM67Test.php index f9bb61ef0e..10b04547d0 100644 --- a/tests/Doctrine/ODM/MongoDB/Tests/Functional/Ticket/MODM67Test.php +++ b/tests/Doctrine/ODM/MongoDB/Tests/Functional/Ticket/MODM67Test.php @@ -113,15 +113,15 @@ class MODM67EmbeddedObject /** @ODM\Int */ public $numAccesses = 0; - /** @ODM\Boolean */ + /** @ODM\Bool */ public $prePersist = false; - /** @ODM\Boolean */ + /** @ODM\Bool */ public $postPersist = false; - /** @ODM\Boolean */ + /** @ODM\Bool */ public $preUpdate = false; - /** @ODM\Boolean */ + /** @ODM\Bool */ public $postUpdate = false; -} \ No newline at end of file +}