Как одним выражением прочитать и изменить свойство
Этот приём можно использовать, например, в базовом классе корня агрегата.
Некогда подглядел у @fes0r.
[$currentValue, $this->property] = [$this->property, $newValue];
Этот приём можно использовать, например, в базовом классе корня агрегата.
abstract class AggregateRoot
{
/**
* @psalm-var list<object>
*/
private array $events = [];
/**
* @psalm-return list<object>
*/
final public function releaseEvents(): array
{
▶ [$events, $this->events] = [$this->events, []];
return $events;
}
final protected function raise(object $event, object ...$events): void
{
$this->events = [...$this->events, $event, ...$events];
}
}
Некогда подглядел у @fes0r.