Skip to content

Instantly share code, notes, and snippets.

@bwaidelich
Last active September 22, 2022 16:19
Show Gist options
  • Select an option

  • Save bwaidelich/9617211 to your computer and use it in GitHub Desktop.

Select an option

Save bwaidelich/9617211 to your computer and use it in GitHub Desktop.

Revisions

  1. Bastian Waidelich revised this gist Mar 18, 2014. 1 changed file with 8 additions and 0 deletions.
    8 changes: 8 additions & 0 deletions composer.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,8 @@
    {
    ...
    "require": {
    "typo3/flow": "2.0.*",
    "gedmo/doctrine-extensions": "2.3.*"
    },
    ...
    }
  2. Bastian Waidelich created this gist Mar 18, 2014.
    16 changes: 16 additions & 0 deletions Settings.yaml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,16 @@
    TYPO3:
    Flow:
    # disable reflection for non psr-0 compliant 3rd party packages
    object:
    excludeClasses:
    'gedmo.doctrineextensions' : ['Gedmo\\.*']

    # register soft deletable filter & event listeners
    persistence:
    doctrine:
    filters:
    soft-deletable: 'Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter'
    eventListeners:
    -
    events: ['onFlush', 'loadClassMetadata']
    listener: 'Gedmo\SoftDeleteable\SoftDeleteableListener'
    39 changes: 39 additions & 0 deletions SoftDeletableTrait.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,39 @@
    <?php
    namespace Your\Package\Domain\Model;

    use TYPO3\Flow\Annotations as Flow;
    use Doctrine\ORM\Mapping as ORM;
    use Gedmo\Mapping\Annotation as Gedmo;

    /**
    * Trait for soft-deletable entities.
    * Usage:
    *
    * * Add @Gedmo\SoftDeleteable(fieldName="deletedAt") annotation to your entity
    * * add "use SoftDeletableTrait;" to your entity
    */
    trait SoftDeletableTrait {

    /**
    * DateTime when this entity was deleted (used for "Soft-Delete behaviour")
    *
    * @var \DateTime
    * @ORM\Column(nullable=true)
    */
    protected $deletedAt;

    /**
    * @return \DateTime
    */
    public function getDeletedAt() {
    return $this->deletedAt;
    }

    /**
    * @param \DateTime $deletedAt
    * @return void
    */
    public function setDeletedAt(\DateTime $deletedAt) {
    $this->deletedAt = $deletedAt;
    }
    }
    21 changes: 21 additions & 0 deletions SomeEntity.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,21 @@
    <?php
    namespace Your\Package\Domain\Model;

    use TYPO3\Flow\Annotations as Flow;
    use Doctrine\ORM\Mapping as ORM;
    use Gedmo\Mapping\Annotation as Gedmo;

    /**
    * Some Entity
    *
    * @Flow\Entity
    * @Gedmo\SoftDeleteable(fieldName="deletedAt")
    */
    class SomeEntity {

    use SoftDeletableTrait;

    /** ..other properties ..*/

    }
    ?>