Skip to content

Instantly share code, notes, and snippets.

@Dinour
Created May 12, 2020 00:46
Show Gist options
  • Select an option

  • Save Dinour/c0e04cf3bb10e62499fc20b03f7bde11 to your computer and use it in GitHub Desktop.

Select an option

Save Dinour/c0e04cf3bb10e62499fc20b03f7bde11 to your computer and use it in GitHub Desktop.

Revisions

  1. Daniele Rostellato revised this gist Jul 17, 2017. 2 changed files with 28 additions and 30 deletions.
    25 changes: 12 additions & 13 deletions EntityBase.php
    Original file line number Diff line number Diff line change
    @@ -39,21 +39,25 @@ class EntityBase implements EntityBaseInterface
    * @ORM\PrePersist
    * @ORM\PreUpdate
    */
    public function updatedTimestamps() :void
    public function updatedTimestamps(): void
    {
    $dateTimeNow = new DateTime('now');

    $this->setUpdatedAt($dateTimeNow);

    if ($this->getCreatedAt() === null)
    {
    if ($this->getCreatedAt() === null) {
    $this->setCreatedAt($dateTimeNow);
    }
    }

    public function setUpdatedAt(DateTime $updatedAt)
    public function getCreatedAt() :?DateTime
    {
    $this->updatedAt = $updatedAt;
    return $this->createdAt;
    }

    public function setCreatedAt(DateTime $createdAt): self
    {
    $this->createdAt = $createdAt;

    return $this;
    }
    @@ -62,16 +66,11 @@ public function getUpdatedAt() :?DateTime
    {
    return $this->updatedAt;
    }

    public function setCreatedAt(DateTime $createdAt)
    public function setUpdatedAt(DateTime $updatedAt): self
    {
    $this->createdAt = $createdAt;
    $this->updatedAt = $updatedAt;

    return $this;
    }

    public function getCreatedAt() :?DateTime
    {
    return $this->createdAt;
    }
    }
    33 changes: 16 additions & 17 deletions EntityBaseInterface.php
    Original file line number Diff line number Diff line change
    @@ -16,37 +16,36 @@ interface EntityBaseInterface
    * @ORM\PrePersist
    * @ORM\PreUpdate
    */
    public function updatedTimestamps() :void;
    public function updatedTimestamps(): void;

    /**
    * Set updatedAt
    *
    * @param DateTime $updatedAt
    * Get createdAt
    *
    * @return $this
    * @return null|DateTime
    */
    public function setUpdatedAt(DateTime $updatedAt);
    public function getCreatedAt(): ?DateTime

    /**
    * Get updatedAt
    * Set createdAt
    *
    * @return DateTime
    * @param DateTime $createdAt
    * @return self
    */
    public function getUpdatedAt() :?DateTime;

    public function setCreatedAt(DateTime $createdAt): self
    /**
    * Set createdAt
    * Get updatedAt
    *
    * @param DateTime $createdAt
    *
    * @return $this
    * @return self
    */
    public function setCreatedAt(DateTime $createdAt);
    public function getUpdatedAt(): ?DateTime

    /**
    * Get createdAt
    * Set updatedAt
    *
    * @return DateTime
    * @param DateTime $updatedAt
    * @return self
    */
    public function getCreatedAt() :?DateTime;
    public function setUpdatedAt(DateTime $updatedAt): self
    }
  2. Daniele Rostellato created this gist Apr 5, 2017.
    77 changes: 77 additions & 0 deletions EntityBase.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,77 @@
    <?php

    namespace AppBundle\Mapping;

    use Doctrine\ORM\Mapping as ORM;
    use DateTime;

    /**
    * Class EntityBase
    *
    * PHP version 7.1
    *
    * LICENSE: MIT
    *
    * @package AppBundle\Mapping
    * @author Lelle - Daniele Rostellato <[email protected]>
    * @license MIT
    * @version 1.0.0
    * @since File available since Release 1.0.0
    * @ORM\HasLifecycleCallbacks
    */
    class EntityBase implements EntityBaseInterface
    {
    /**
    * @var DateTime $created
    *
    * @ORM\Column(name="created_at", type="datetime", nullable=false)
    */
    protected $createdAt;

    /**
    * @var DateTime $updated
    *
    * @ORM\Column(name="updated_at", type="datetime", nullable=false)
    */
    protected $updatedAt;

    /**
    * @ORM\PrePersist
    * @ORM\PreUpdate
    */
    public function updatedTimestamps() :void
    {
    $dateTimeNow = new DateTime('now');

    $this->setUpdatedAt($dateTimeNow);

    if ($this->getCreatedAt() === null)
    {
    $this->setCreatedAt($dateTimeNow);
    }
    }

    public function setUpdatedAt(DateTime $updatedAt)
    {
    $this->updatedAt = $updatedAt;

    return $this;
    }

    public function getUpdatedAt() :?DateTime
    {
    return $this->updatedAt;
    }

    public function setCreatedAt(DateTime $createdAt)
    {
    $this->createdAt = $createdAt;

    return $this;
    }

    public function getCreatedAt() :?DateTime
    {
    return $this->createdAt;
    }
    }
    52 changes: 52 additions & 0 deletions EntityBaseInterface.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,52 @@
    <?php

    namespace AppBundle\Mapping;

    use Doctrine\ORM\Mapping as ORM;
    use DateTime;

    /**
    * EntityBase Interface
    *
    * @author Lelle - Daniele Rostellato <[email protected]>
    */
    interface EntityBaseInterface
    {
    /**
    * @ORM\PrePersist
    * @ORM\PreUpdate
    */
    public function updatedTimestamps() :void;

    /**
    * Set updatedAt
    *
    * @param DateTime $updatedAt
    *
    * @return $this
    */
    public function setUpdatedAt(DateTime $updatedAt);

    /**
    * Get updatedAt
    *
    * @return DateTime
    */
    public function getUpdatedAt() :?DateTime;

    /**
    * Set createdAt
    *
    * @param DateTime $createdAt
    *
    * @return $this
    */
    public function setCreatedAt(DateTime $createdAt);

    /**
    * Get createdAt
    *
    * @return DateTime
    */
    public function getCreatedAt() :?DateTime;
    }
    16 changes: 16 additions & 0 deletions MyEntity.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,16 @@
    <?php

    namespace AppBundle\Entity;

    use Doctrine\ORM\Mapping as ORM;
    use AppBundle\Mapping\EntityBase;

    /**
    * MyEntity
    *
    * @ORM\HasLifecycleCallbacks
    */
    class MyEntity extends EntityBase
    {
    // ...
    }