diff options
author | polo <ordipolo@gmx.fr> | 2024-08-13 23:45:21 +0200 |
---|---|---|
committer | polo <ordipolo@gmx.fr> | 2024-08-13 23:45:21 +0200 |
commit | bf6655a534a6775d30cafa67bd801276bda1d98d (patch) | |
tree | c6381e3f6c81c33eab72508f410b165ba05f7e9c /vendor/doctrine/orm/src/Mapping/Driver/ReflectionBasedDriver.php | |
parent | 94d67a4b51f8e62e7d518cce26a526ae1ec48278 (diff) | |
download | AppliGestionPHP-bf6655a534a6775d30cafa67bd801276bda1d98d.zip |
VERSION 0.2 doctrine ORM et entités
Diffstat (limited to 'vendor/doctrine/orm/src/Mapping/Driver/ReflectionBasedDriver.php')
-rw-r--r-- | vendor/doctrine/orm/src/Mapping/Driver/ReflectionBasedDriver.php | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/vendor/doctrine/orm/src/Mapping/Driver/ReflectionBasedDriver.php b/vendor/doctrine/orm/src/Mapping/Driver/ReflectionBasedDriver.php new file mode 100644 index 0000000..7d85471 --- /dev/null +++ b/vendor/doctrine/orm/src/Mapping/Driver/ReflectionBasedDriver.php | |||
@@ -0,0 +1,44 @@ | |||
1 | <?php | ||
2 | |||
3 | declare(strict_types=1); | ||
4 | |||
5 | namespace Doctrine\ORM\Mapping\Driver; | ||
6 | |||
7 | use Doctrine\ORM\Mapping\ClassMetadata; | ||
8 | use ReflectionProperty; | ||
9 | |||
10 | /** @internal */ | ||
11 | trait ReflectionBasedDriver | ||
12 | { | ||
13 | /** | ||
14 | * Helps to deal with the case that reflection may report properties inherited from parent classes. | ||
15 | * When we know about the fields already (inheritance has been anticipated in ClassMetadataFactory), | ||
16 | * the driver must skip them. | ||
17 | * | ||
18 | * The declaring classes may mismatch when there are private properties: The same property name may be | ||
19 | * reported multiple times, but since it is private, it is in fact multiple (different) properties in | ||
20 | * different classes. In that case, report the property as an individual field. (ClassMetadataFactory will | ||
21 | * probably fail in that case, though.) | ||
22 | */ | ||
23 | private function isRepeatedPropertyDeclaration(ReflectionProperty $property, ClassMetadata $metadata): bool | ||
24 | { | ||
25 | $declaringClass = $property->class; | ||
26 | |||
27 | if ( | ||
28 | isset($metadata->fieldMappings[$property->name]->declared) | ||
29 | && $metadata->fieldMappings[$property->name]->declared === $declaringClass | ||
30 | ) { | ||
31 | return true; | ||
32 | } | ||
33 | |||
34 | if ( | ||
35 | isset($metadata->associationMappings[$property->name]->declared) | ||
36 | && $metadata->associationMappings[$property->name]->declared === $declaringClass | ||
37 | ) { | ||
38 | return true; | ||
39 | } | ||
40 | |||
41 | return isset($metadata->embeddedClasses[$property->name]->declared) | ||
42 | && $metadata->embeddedClasses[$property->name]->declared === $declaringClass; | ||
43 | } | ||
44 | } | ||