TimestampsTrait.php

Code Hygiene Score: 100

Keine Issues gefunden.

Klassen 1

Funktionen 5

Verwendet von 2

Code

<?php

declare(strict_types=1);

namespace Domain\Traits;

// @responsibility: Wiederverwendbare Timestamp-Getter für Entities

trait TimestampsTrait
{
    private \DateTimeImmutable $createdAt;
    private \DateTimeImmutable $updatedAt;
    private ?\DateTimeImmutable $completedAt = null;

    public function getCreatedAt(): \DateTimeImmutable
    {
        return $this->createdAt;
    }

    public function getUpdatedAt(): \DateTimeImmutable
    {
        return $this->updatedAt;
    }

    public function getCompletedAt(): ?\DateTimeImmutable
    {
        return $this->completedAt;
    }

    private function touch(): void
    {
        $this->updatedAt = new \DateTimeImmutable();
    }

    private function toDateTime(\DateTimeImmutable|string $value): \DateTimeImmutable
    {
        return $value instanceof \DateTimeImmutable ? $value : new \DateTimeImmutable($value);
    }
}
← Übersicht Graph