src/Domain/Entity/AbstractEntity.php line 16

Open in your IDE?
  1. <?php
  2. declare(strict_types 1);
  3. namespace App\Domain\Entity;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use App\Domain\Traits\IdTrait;
  6. use App\Domain\Traits\TimestampableTrait;
  7. use Ramsey\Uuid\Uuid;
  8. /**
  9.  * @ORM\MappedSuperclass
  10.  * @ORM\HasLifecycleCallbacks
  11.  */
  12. class AbstractEntity
  13. {
  14.     use IdTrait;
  15.     use TimestampableTrait;
  16.     public function __construct()
  17.     {
  18.         $this->id Uuid::uuid4()->toString();
  19.     }
  20.     /**
  21.      * @ORM\PrePersist
  22.      */
  23.     public function onPersist(): void
  24.     {
  25.         $this->createdAt = new \DateTime();
  26.     }
  27.     /**
  28.      * @ORM\PreUpdate
  29.      */
  30.     public function onUpdate(): void
  31.     {
  32.         $this->updatedAt = new \DateTime();
  33.     }
  34. }