Skip to content

Commit 81fe43d

Browse files
alcaeusSteveb-pmalarzm
authored
Deprecate mapping relations with targetDocument and discriminatorMap (#2271)
* Deprecate mapping relations with targetDocument and discriminatorMap * Fix invalid mapping in tests * Apply suggestions from code review Co-authored-by: Maciej Malarz <[email protected]> Co-authored-by: Paweł Niedzielski <[email protected]> Co-authored-by: Maciej Malarz <[email protected]>
1 parent 4888f3f commit 81fe43d

File tree

5 files changed

+17
-15
lines changed

5 files changed

+17
-15
lines changed

lib/Doctrine/ODM/MongoDB/Mapping/ClassMetadata.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1946,6 +1946,16 @@ public function mapField(array $mapping): array
19461946
throw MappingException::repositoryMethodCanNotBeCombinedWithSkipLimitAndSort($this->name, $mapping['fieldName']);
19471947
}
19481948

1949+
if (isset($mapping['targetDocument']) && isset($mapping['discriminatorMap'])) {
1950+
trigger_deprecation(
1951+
'doctrine/mongodb-odm',
1952+
'2.2',
1953+
'Mapping both "targetDocument" and "discriminatorMap" on field "%s" in class "%s" is deprecated. Only one of them can be used at a time',
1954+
$mapping['fieldName'],
1955+
$this->name
1956+
);
1957+
}
1958+
19491959
if (isset($mapping['reference']) && $mapping['type'] === 'one') {
19501960
$mapping['association'] = self::REFERENCE_ONE;
19511961
}

tests/Doctrine/ODM/MongoDB/Tests/Functional/DocumentPersisterTest.php

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -771,10 +771,6 @@ class DocumentPersisterTestDocument
771771
* @ODM\EmbedOne(
772772
* targetDocument=Doctrine\ODM\MongoDB\Tests\Functional\AbstractDocumentPersisterTestDocumentAssociation::class,
773773
* discriminatorField="type",
774-
* discriminatorMap={
775-
* "reference"=Doctrine\ODM\MongoDB\Tests\Functional\DocumentPersisterTestDocumentReference::class,
776-
* "embed"=Doctrine\ODM\MongoDB\Tests\Functional\DocumentPersisterTestDocumentEmbed::class
777-
* },
778774
* name="associationName"
779775
* )
780776
*/
@@ -827,10 +823,6 @@ abstract class AbstractDocumentPersisterTestDocumentAssociation
827823
* @ODM\EmbedOne(
828824
* targetDocument=Doctrine\ODM\MongoDB\Tests\Functional\AbstractDocumentPersisterTestDocumentAssociation::class,
829825
* discriminatorField="type",
830-
* discriminatorMap={
831-
* "reference"=Doctrine\ODM\MongoDB\Tests\Functional\DocumentPersisterTestDocumentReference::class,
832-
* "embed"=Doctrine\ODM\MongoDB\Tests\Functional\DocumentPersisterTestDocumentEmbed::class
833-
* },
834826
* name="associationName"
835827
* )
836828
*/

tests/Doctrine/ODM/MongoDB/Tests/Functional/Ticket/GH267Test.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class GH267User
6767
/** @ODM\Field(type="string") */
6868
protected $name;
6969

70-
/** @ODM\ReferenceOne(name="company", targetDocument=GH267Company::class, discriminatorMap={"seller"=GH267SellerCompany::class, "buyer"=GH267BuyerCompany::class}, inversedBy="users") */
70+
/** @ODM\ReferenceOne(name="company", targetDocument=GH267Company::class, inversedBy="users") */
7171
protected $company;
7272

7373
public function __construct($name)

tests/Doctrine/ODM/MongoDB/Tests/Mapping/AbstractMappingDriverTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,10 +134,10 @@ public function testGetAssociationTargetClass($class)
134134
{
135135
$this->assertEquals(Address::class, $class->getAssociationTargetClass('address'));
136136
$this->assertEquals(Group::class, $class->getAssociationTargetClass('groups'));
137-
$this->assertEquals(Phonenumber::class, $class->getAssociationTargetClass('phonenumbers'));
137+
$this->assertNull($class->getAssociationTargetClass('phonenumbers'));
138138
$this->assertEquals(Phonenumber::class, $class->getAssociationTargetClass('morePhoneNumbers'));
139139
$this->assertEquals(Phonenumber::class, $class->getAssociationTargetClass('embeddedPhonenumber'));
140-
$this->assertEquals(Phonenumber::class, $class->getAssociationTargetClass('otherPhonenumbers'));
140+
$this->assertNull($class->getAssociationTargetClass('otherPhonenumbers'));
141141
}
142142

143143
/**
@@ -625,7 +625,7 @@ class AbstractMappingDriverUser
625625
/** @ODM\ReferenceOne(targetDocument=Address::class, cascade={"remove"}) */
626626
public $address;
627627

628-
/** @ODM\ReferenceMany(targetDocument=Phonenumber::class, collectionClass=PhonenumberCollection::class, cascade={"persist"}, discriminatorField="discr", discriminatorMap={"home"=HomePhonenumber::class, "work"=WorkPhonenumber::class}, defaultDiscriminatorValue="home") */
628+
/** @ODM\ReferenceMany(collectionClass=PhonenumberCollection::class, cascade={"persist"}, discriminatorField="discr", discriminatorMap={"home"=HomePhonenumber::class, "work"=WorkPhonenumber::class}, defaultDiscriminatorValue="home") */
629629
public $phonenumbers;
630630

631631
/** @ODM\ReferenceMany(targetDocument=Group::class, cascade={"all"}) */
@@ -637,7 +637,7 @@ class AbstractMappingDriverUser
637637
/** @ODM\EmbedMany(targetDocument=Phonenumber::class, name="embedded_phone_number") */
638638
public $embeddedPhonenumber;
639639

640-
/** @ODM\EmbedMany(targetDocument=Phonenumber::class, discriminatorField="discr", discriminatorMap={"home"=HomePhonenumber::class, "work"=WorkPhonenumber::class}, defaultDiscriminatorValue="home") */
640+
/** @ODM\EmbedMany(discriminatorField="discr", discriminatorMap={"home"=HomePhonenumber::class, "work"=WorkPhonenumber::class}, defaultDiscriminatorValue="home") */
641641
public $otherPhonenumbers;
642642

643643
/** @ODM\Field(type="date") */

tests/Doctrine/ODM/MongoDB/Tests/Mapping/xml/Doctrine.ODM.MongoDB.Tests.Mapping.AbstractMappingDriverUser.dcm.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
<remove />
5050
</cascade>
5151
</reference-one>
52-
<reference-many target-document="Doctrine\ODM\MongoDB\Tests\Mapping\Phonenumber" collection-class="Doctrine\ODM\MongoDB\Tests\Mapping\PhonenumberCollection" field="phonenumbers">
52+
<reference-many collection-class="Doctrine\ODM\MongoDB\Tests\Mapping\PhonenumberCollection" field="phonenumbers">
5353
<cascade>
5454
<persist />
5555
</cascade>
@@ -69,7 +69,7 @@
6969
</reference-many>
7070
<embed-one target-document="Doctrine\ODM\MongoDB\Tests\Mapping\Phonenumber" field-name="embeddedPhonenumber" field="embedded_phone_number">
7171
</embed-one>
72-
<embed-many target-document="Doctrine\ODM\MongoDB\Tests\Mapping\Phonenumber" collection-class="Doctrine\ODM\MongoDB\Tests\Mapping\PhonenumberCollection" field="otherPhonenumbers">
72+
<embed-many collection-class="Doctrine\ODM\MongoDB\Tests\Mapping\PhonenumberCollection" field="otherPhonenumbers">
7373
<discriminator-field name="discr" />
7474
<discriminator-map>
7575
<discriminator-mapping value="home" class="Doctrine\ODM\MongoDB\Tests\Mapping\HomePhonenumber" />

0 commit comments

Comments
 (0)