From 90c0955c7a9582e8913a652463df89904981df7b Mon Sep 17 00:00:00 2001 From: Maciej Malarz Date: Sun, 17 May 2020 20:39:23 +0200 Subject: [PATCH] Favour bool and int over boolean and integer --- UPGRADE-2.1.md | 3 +++ docs/en/cookbook/blending-orm-and-mongodb-odm.rst | 2 +- .../en/cookbook/mapping-classes-to-orm-and-odm.rst | 4 ++-- lib/Doctrine/ODM/MongoDB/Mapping/ClassMetadata.php | 13 +++++++++++++ lib/Doctrine/ODM/MongoDB/Types/Type.php | 14 ++++++++------ .../ODM/MongoDB/Tests/Functional/IndexesTest.php | 2 +- .../Tests/Mapping/Driver/AbstractDriverTest.php | 2 +- .../xml/TestDocuments.QueryResultDocument.dcm.xml | 2 +- .../Driver/fixtures/xml/TestDocuments.View.dcm.xml | 2 +- ...Tests.Mapping.AbstractMappingDriverUser.dcm.xml | 2 +- .../DocumentPersisterGetShardKeyQueryTest.php | 2 +- 11 files changed, 33 insertions(+), 15 deletions(-) diff --git a/UPGRADE-2.1.md b/UPGRADE-2.1.md index 13d75eccbf..2a04e7f15b 100644 --- a/UPGRADE-2.1.md +++ b/UPGRADE-2.1.md @@ -5,3 +5,6 @@ the `Doctrine\ODM\MongoDB\Id\IdGenerator` interface. The `Doctrine\ODM\MongoDB\Mapping\ClassMetadata` class has been marked final. The class will no longer be extendable in ODM 3.0. + +The `boolean` and `integer` mapping types have been deprecated. Use their shorthand counterparts: `bool` and `int` +respectively. diff --git a/docs/en/cookbook/blending-orm-and-mongodb-odm.rst b/docs/en/cookbook/blending-orm-and-mongodb-odm.rst index 5b3ee3b4b9..0f1cfd3fe7 100644 --- a/docs/en/cookbook/blending-orm-and-mongodb-odm.rst +++ b/docs/en/cookbook/blending-orm-and-mongodb-odm.rst @@ -61,7 +61,7 @@ Next create the ``Order`` entity that has a ``$product`` and ``$productId`` prop class Order { /** - * @Id @Column(type="integer") + * @Id @Column(type="int") * @GeneratedValue(strategy="AUTO") */ private $id; diff --git a/docs/en/cookbook/mapping-classes-to-orm-and-odm.rst b/docs/en/cookbook/mapping-classes-to-orm-and-odm.rst index 4013662a7c..70d318ed74 100644 --- a/docs/en/cookbook/mapping-classes-to-orm-and-odm.rst +++ b/docs/en/cookbook/mapping-classes-to-orm-and-odm.rst @@ -52,7 +52,7 @@ First define the mapping for the ORM: /** @Entity(repositoryClass=BlogPostRepository::class) */ class BlogPost { - /** @Id @Column(type="integer") */ + /** @Id @Column(type="int") */ private $id; /** @Column(type="string") */ @@ -73,7 +73,7 @@ First define the mapping for the ORM: http://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> - + diff --git a/lib/Doctrine/ODM/MongoDB/Mapping/ClassMetadata.php b/lib/Doctrine/ODM/MongoDB/Mapping/ClassMetadata.php index 6d7e414306..200150253a 100644 --- a/lib/Doctrine/ODM/MongoDB/Mapping/ClassMetadata.php +++ b/lib/Doctrine/ODM/MongoDB/Mapping/ClassMetadata.php @@ -36,6 +36,7 @@ use function sprintf; use function strtolower; use function strtoupper; +use function trigger_error; /** * A ClassMetadata instance holds all the object-document mapping metadata @@ -1983,6 +1984,18 @@ public function mapField(array $mapping) : array $this->checkDuplicateMapping($mapping); $this->typeRequirementsAreMet($mapping); + $deprecatedTypes = [ + Type::BOOLEAN => Type::BOOL, + Type::INTEGER => Type::INT, + ]; + if (isset($deprecatedTypes[$mapping['type']])) { + @trigger_error(sprintf( + '"%s" type was deprecated in doctrine/mongodb-odm 2.1 and will be removed in 3.0. Use "%s" instead.', + $mapping['type'], + $deprecatedTypes[$mapping['type']] + )); + } + $this->fieldMappings[$mapping['fieldName']] = $mapping; if (isset($mapping['association'])) { $this->associationMappings[$mapping['fieldName']] = $mapping; diff --git a/lib/Doctrine/ODM/MongoDB/Types/Type.php b/lib/Doctrine/ODM/MongoDB/Types/Type.php index 12e60c9c2a..de89425fda 100644 --- a/lib/Doctrine/ODM/MongoDB/Types/Type.php +++ b/lib/Doctrine/ODM/MongoDB/Types/Type.php @@ -23,12 +23,14 @@ */ abstract class Type { - public const ID = 'id'; - public const INTID = 'int_id'; - public const CUSTOMID = 'custom_id'; - public const BOOL = 'bool'; - public const BOOLEAN = 'boolean'; - public const INT = 'int'; + public const ID = 'id'; + public const INTID = 'int_id'; + public const CUSTOMID = 'custom_id'; + public const BOOL = 'bool'; + /** @deprecated const was deprecated in doctrine/mongodb-odm 2.1 and will be removed in 3.0. Use Type::BOOL instead */ + public const BOOLEAN = 'boolean'; + public const INT = 'int'; + /** @deprecated const was deprecated in doctrine/mongodb-odm 2.1 and will be removed in 3.0. Use Type::INT instead */ public const INTEGER = 'integer'; public const FLOAT = 'float'; public const STRING = 'string'; diff --git a/tests/Doctrine/ODM/MongoDB/Tests/Functional/IndexesTest.php b/tests/Doctrine/ODM/MongoDB/Tests/Functional/IndexesTest.php index ba4e0682b1..ecb3455cf0 100644 --- a/tests/Doctrine/ODM/MongoDB/Tests/Functional/IndexesTest.php +++ b/tests/Doctrine/ODM/MongoDB/Tests/Functional/IndexesTest.php @@ -268,7 +268,7 @@ class PartialIndexOnDocumentTest /** @ODM\Field(type="string") */ public $email; - /** @ODM\Field(type="integer") */ + /** @ODM\Field(type="int") */ public $counter; } diff --git a/tests/Doctrine/ODM/MongoDB/Tests/Mapping/Driver/AbstractDriverTest.php b/tests/Doctrine/ODM/MongoDB/Tests/Mapping/Driver/AbstractDriverTest.php index c1eeee7d5f..3c7a58fe33 100644 --- a/tests/Doctrine/ODM/MongoDB/Tests/Mapping/Driver/AbstractDriverTest.php +++ b/tests/Doctrine/ODM/MongoDB/Tests/Mapping/Driver/AbstractDriverTest.php @@ -281,7 +281,7 @@ public function testDriver() $this->assertEquals([ 'fieldName' => 'count', 'name' => 'count', - 'type' => 'integer', + 'type' => 'int', 'isCascadeDetach' => false, 'isCascadeMerge' => false, 'isCascadePersist' => false, diff --git a/tests/Doctrine/ODM/MongoDB/Tests/Mapping/Driver/fixtures/xml/TestDocuments.QueryResultDocument.dcm.xml b/tests/Doctrine/ODM/MongoDB/Tests/Mapping/Driver/fixtures/xml/TestDocuments.QueryResultDocument.dcm.xml index e78cbcca52..1af8b7e99a 100644 --- a/tests/Doctrine/ODM/MongoDB/Tests/Mapping/Driver/fixtures/xml/TestDocuments.QueryResultDocument.dcm.xml +++ b/tests/Doctrine/ODM/MongoDB/Tests/Mapping/Driver/fixtures/xml/TestDocuments.QueryResultDocument.dcm.xml @@ -7,7 +7,7 @@ - + diff --git a/tests/Doctrine/ODM/MongoDB/Tests/Mapping/Driver/fixtures/xml/TestDocuments.View.dcm.xml b/tests/Doctrine/ODM/MongoDB/Tests/Mapping/Driver/fixtures/xml/TestDocuments.View.dcm.xml index 312850bd5f..8148fc185b 100644 --- a/tests/Doctrine/ODM/MongoDB/Tests/Mapping/Driver/fixtures/xml/TestDocuments.View.dcm.xml +++ b/tests/Doctrine/ODM/MongoDB/Tests/Mapping/Driver/fixtures/xml/TestDocuments.View.dcm.xml @@ -7,7 +7,7 @@ - + diff --git a/tests/Doctrine/ODM/MongoDB/Tests/Mapping/xml/Doctrine.ODM.MongoDB.Tests.Mapping.AbstractMappingDriverUser.dcm.xml b/tests/Doctrine/ODM/MongoDB/Tests/Mapping/xml/Doctrine.ODM.MongoDB.Tests.Mapping.AbstractMappingDriverUser.dcm.xml index 1ecc83e6c8..75b6fe1cb9 100644 --- a/tests/Doctrine/ODM/MongoDB/Tests/Mapping/xml/Doctrine.ODM.MongoDB.Tests.Mapping.AbstractMappingDriverUser.dcm.xml +++ b/tests/Doctrine/ODM/MongoDB/Tests/Mapping/xml/Doctrine.ODM.MongoDB.Tests.Mapping.AbstractMappingDriverUser.dcm.xml @@ -25,7 +25,7 @@ - + diff --git a/tests/Doctrine/ODM/MongoDB/Tests/Persisters/DocumentPersisterGetShardKeyQueryTest.php b/tests/Doctrine/ODM/MongoDB/Tests/Persisters/DocumentPersisterGetShardKeyQueryTest.php index 0ee14b26e4..46bff31fb9 100644 --- a/tests/Doctrine/ODM/MongoDB/Tests/Persisters/DocumentPersisterGetShardKeyQueryTest.php +++ b/tests/Doctrine/ODM/MongoDB/Tests/Persisters/DocumentPersisterGetShardKeyQueryTest.php @@ -117,7 +117,7 @@ class ShardedByScalars /** @ODM\Field(type="string") */ public $string; - /** @ODM\Field(type="boolean") */ + /** @ODM\Field(type="bool") */ public $bool; /** @ODM\Field(type="float") */