public function __construct( private bool
$singleState = false,
private string
$property = 'marking',
) { } public function getMarking(object
$subject): Marking
{ $marking = null;
try { $marking =
($this->
getGetter($subject))();
} catch (\Error
$e) { $unInitializedPropertyMessage =
sprintf('Typed property %s::$%s must not be accessed before initialization',
get_debug_type($subject),
$this->property
);
if ($e->
getMessage() !==
$unInitializedPropertyMessage) { throw $e;
} } if (null ===
$marking) { return new Marking();
}