Builder
9 months ago
Driver
9 months ago
Exception
9 months ago
Reflection
9 months ago
Annotation.php
9 months ago
AnsiQuoteStrategy.php
9 months ago
AssociationOverride.php
9 months ago
AssociationOverrides.php
9 months ago
AttributeOverride.php
9 months ago
AttributeOverrides.php
9 months ago
Cache.php
9 months ago
ChainTypedFieldMapper.php
9 months ago
ChangeTrackingPolicy.php
9 months ago
ClassMetadata.php
9 months ago
ClassMetadataFactory.php
9 months ago
ClassMetadataInfo.php
9 months ago
Column.php
9 months ago
ColumnResult.php
9 months ago
CustomIdGenerator.php
9 months ago
DefaultEntityListenerResolver.php
9 months ago
DefaultNamingStrategy.php
9 months ago
DefaultQuoteStrategy.php
9 months ago
DefaultTypedFieldMapper.php
9 months ago
DiscriminatorColumn.php
9 months ago
DiscriminatorMap.php
9 months ago
Embeddable.php
9 months ago
Embedded.php
9 months ago
Entity.php
9 months ago
EntityListenerResolver.php
9 months ago
EntityListeners.php
9 months ago
EntityResult.php
9 months ago
FieldResult.php
9 months ago
GeneratedValue.php
9 months ago
HasLifecycleCallbacks.php
9 months ago
Id.php
9 months ago
Index.php
9 months ago
InheritanceType.php
9 months ago
InverseJoinColumn.php
9 months ago
JoinColumn.php
9 months ago
JoinColumnProperties.php
9 months ago
JoinColumns.php
9 months ago
JoinTable.php
9 months ago
ManyToMany.php
9 months ago
ManyToOne.php
9 months ago
MappedSuperclass.php
9 months ago
MappingAttribute.php
9 months ago
MappingException.php
9 months ago
NamedNativeQueries.php
9 months ago
NamedNativeQuery.php
9 months ago
NamedQueries.php
9 months ago
NamedQuery.php
9 months ago
NamingStrategy.php
9 months ago
OneToMany.php
9 months ago
OneToOne.php
9 months ago
OrderBy.php
9 months ago
PostLoad.php
9 months ago
PostPersist.php
9 months ago
PostRemove.php
9 months ago
PostUpdate.php
9 months ago
PreFlush.php
9 months ago
PrePersist.php
9 months ago
PreRemove.php
9 months ago
PreUpdate.php
9 months ago
QuoteStrategy.php
9 months ago
ReflectionEmbeddedProperty.php
9 months ago
ReflectionEnumProperty.php
9 months ago
ReflectionReadonlyProperty.php
9 months ago
SequenceGenerator.php
9 months ago
SqlResultSetMapping.php
9 months ago
SqlResultSetMappings.php
9 months ago
Table.php
9 months ago
TypedFieldMapper.php
9 months ago
UnderscoreNamingStrategy.php
9 months ago
UniqueConstraint.php
9 months ago
Version.php
9 months ago
ReflectionEmbeddedProperty.php
42 lines
| 1 | <?php |
| 2 | declare (strict_types=1); |
| 3 | namespace MailPoetVendor\Doctrine\ORM\Mapping; |
| 4 | if (!defined('ABSPATH')) exit; |
| 5 | use MailPoetVendor\Doctrine\Instantiator\Instantiator; |
| 6 | use ReflectionProperty; |
| 7 | use ReturnTypeWillChange; |
| 8 | class ReflectionEmbeddedProperty extends ReflectionProperty |
| 9 | { |
| 10 | private $parentProperty; |
| 11 | private $childProperty; |
| 12 | private $embeddedClass; |
| 13 | private $instantiator; |
| 14 | public function __construct(ReflectionProperty $parentProperty, ReflectionProperty $childProperty, $embeddedClass) |
| 15 | { |
| 16 | $this->parentProperty = $parentProperty; |
| 17 | $this->childProperty = $childProperty; |
| 18 | $this->embeddedClass = (string) $embeddedClass; |
| 19 | parent::__construct($childProperty->class, $childProperty->name); |
| 20 | } |
| 21 | #[\ReturnTypeWillChange] |
| 22 | public function getValue($object = null) |
| 23 | { |
| 24 | $embeddedObject = $this->parentProperty->getValue($object); |
| 25 | if ($embeddedObject === null) { |
| 26 | return null; |
| 27 | } |
| 28 | return $this->childProperty->getValue($embeddedObject); |
| 29 | } |
| 30 | #[\ReturnTypeWillChange] |
| 31 | public function setValue($object, $value = null) |
| 32 | { |
| 33 | $embeddedObject = $this->parentProperty->getValue($object); |
| 34 | if ($embeddedObject === null) { |
| 35 | $this->instantiator = $this->instantiator ?: new Instantiator(); |
| 36 | $embeddedObject = $this->instantiator->instantiate($this->embeddedClass); |
| 37 | $this->parentProperty->setValue($object, $embeddedObject); |
| 38 | } |
| 39 | $this->childProperty->setValue($embeddedObject, $value); |
| 40 | } |
| 41 | } |
| 42 |