Skip to content

Commit fe0d0e5

Browse files
endelwarphansys
authored andcommitted
Use public property instead of deprecated array access
Replace #2925
1 parent 3d6ee74 commit fe0d0e5

File tree

4 files changed

+17
-4
lines changed

4 files changed

+17
-4
lines changed

src/Loggable/Mapping/Driver/Attribute.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
use Doctrine\ODM\MongoDB\Mapping\ClassMetadata as ClassMetadataODM;
1313
use Doctrine\ORM\Mapping\ClassMetadata as ClassMetadataORM;
14+
use Doctrine\ORM\Mapping\EmbeddedClassMapping;
1415
use Doctrine\Persistence\Mapping\ClassMetadata;
1516
use Gedmo\Exception\InvalidMappingException;
1617
use Gedmo\Mapping\Annotation\Loggable;
@@ -137,7 +138,9 @@ protected function isClassAnnotationInValid(ClassMetadata $meta, array &$config)
137138
*/
138139
private function inspectEmbeddedForVersioned(string $field, array &$config, ClassMetadataORM $meta): void
139140
{
140-
$class = new \ReflectionClass($meta->embeddedClasses[$field]['class']);
141+
/** Remove conditional when ORM 2.x is no longer supported. */
142+
$className = ($meta->embeddedClasses[$field] instanceof EmbeddedClassMapping) ? $meta->embeddedClasses[$field]->class : $meta->embeddedClasses[$field]['class'];
143+
$class = new \ReflectionClass($className);
141144

142145
// property annotations
143146
foreach ($class->getProperties() as $property) {

src/Sluggable/Mapping/Driver/Attribute.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
namespace Gedmo\Sluggable\Mapping\Driver;
1111

12+
use Doctrine\ORM\Mapping\EmbeddedClassMapping;
1213
use Doctrine\Persistence\Mapping\ClassMetadata;
1314
use Gedmo\Exception\InvalidMappingException;
1415
use Gedmo\Mapping\Annotation\Slug;
@@ -82,7 +83,9 @@ public function readExtendedMetadata($meta, array &$config)
8283
// Embedded entity
8384
if (property_exists($meta, 'embeddedClasses') && $meta->embeddedClasses) {
8485
foreach ($meta->embeddedClasses as $propertyName => $embeddedClassInfo) {
85-
$embeddedClass = new \ReflectionClass($embeddedClassInfo['class']);
86+
/** Remove conditional when ORM 2.x is no longer supported. */
87+
$className = ($embeddedClassInfo instanceof EmbeddedClassMapping) ? $embeddedClassInfo->class : $embeddedClassInfo['class'];
88+
$embeddedClass = new \ReflectionClass($className);
8689

8790
foreach ($embeddedClass->getProperties() as $embeddedProperty) {
8891
$config = $this->retrieveSlug($meta, $config, $embeddedProperty, $propertyName);

src/Translatable/Mapping/Driver/Attribute.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
namespace Gedmo\Translatable\Mapping\Driver;
1111

12+
use Doctrine\ORM\Mapping\EmbeddedClassMapping;
1213
use Gedmo\Exception\InvalidMappingException;
1314
use Gedmo\Mapping\Annotation\Language;
1415
use Gedmo\Mapping\Annotation\Locale;
@@ -118,7 +119,9 @@ public function readExtendedMetadata($meta, array &$config)
118119
continue;
119120
}
120121

121-
$embeddedClass = new \ReflectionClass($embeddedClassInfo['class']);
122+
/** Remove conditional when ORM 2.x is no longer supported. */
123+
$className = ($embeddedClassInfo instanceof EmbeddedClassMapping) ? $embeddedClassInfo->class : $embeddedClassInfo['class'];
124+
$embeddedClass = new \ReflectionClass($className);
122125

123126
foreach ($embeddedClass->getProperties() as $embeddedProperty) {
124127
if ($translatable = $this->reader->getPropertyAnnotation($embeddedProperty, self::TRANSLATABLE)) {

src/Translatable/Mapping/Driver/Xml.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
namespace Gedmo\Translatable\Mapping\Driver;
1111

12+
use Doctrine\ORM\Mapping\EmbeddedClassMapping;
1213
use Gedmo\Exception\InvalidMappingException;
1314
use Gedmo\Mapping\Driver\Xml as BaseXml;
1415

@@ -61,7 +62,10 @@ public function readExtendedMetadata($meta, array &$config)
6162
if ($meta->isInheritedEmbeddedClass($propertyName)) {
6263
continue;
6364
}
64-
$xmlEmbeddedClass = $this->_getMapping($embeddedClassInfo['class']);
65+
66+
/** Remove conditional when ORM 2.x is no longer supported. */
67+
$className = ($embeddedClassInfo instanceof EmbeddedClassMapping) ? $embeddedClassInfo->class : $embeddedClassInfo['class'];
68+
$xmlEmbeddedClass = $this->_getMapping($className);
6569
$config = $this->inspectElementsForTranslatableFields($xmlEmbeddedClass, $config, $propertyName);
6670
}
6771
}

0 commit comments

Comments
 (0)