1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
<?php
declare(strict_types=1);
namespace Doctrine\ORM\Mapping;
use Attribute;
use Doctrine\Common\Annotations\Annotation\NamedArgumentConstructor;
/**
* @Annotation
* @NamedArgumentConstructor()
* @Target("PROPERTY")
*/
#[Attribute(Attribute::TARGET_PROPERTY)]
final class OneToOne implements MappingAttribute
{
/**
* @var class-string|null
* @readonly
*/
public $targetEntity;
/**
* @var string|null
* @readonly
*/
public $mappedBy;
/**
* @var string|null
* @readonly
*/
public $inversedBy;
/**
* @var array<string>|null
* @readonly
*/
public $cascade;
/**
* The fetching strategy to use for the association.
*
* @var string
* @psalm-var 'LAZY'|'EAGER'|'EXTRA_LAZY'
* @readonly
* @Enum({"LAZY", "EAGER", "EXTRA_LAZY"})
*/
public $fetch = 'LAZY';
/**
* @var bool
* @readonly
*/
public $orphanRemoval = false;
/**
* @param class-string|null $targetEntity
* @param array<string>|null $cascade
* @psalm-param 'LAZY'|'EAGER'|'EXTRA_LAZY' $fetch
*/
public function __construct(
?string $mappedBy = null,
?string $inversedBy = null,
?string $targetEntity = null,
?array $cascade = null,
string $fetch = 'LAZY',
bool $orphanRemoval = false
) {
$this->mappedBy = $mappedBy;
$this->inversedBy = $inversedBy;
$this->targetEntity = $targetEntity;
$this->cascade = $cascade;
$this->fetch = $fetch;
$this->orphanRemoval = $orphanRemoval;
}
}
|