Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
digitalascetic/simple-translatable / EventListener / TranslatablePersistenceListener.php
Size: Mime:
<?php
/**
 * Created by IntelliJ IDEA.
 * User: martino
 * Date: 24/02/16
 * Time: 01:40
 */

namespace DigitalAscetic\SimpleTranslatable\EventListener;

use DigitalAscetic\SimpleTranslatable\Entity\Translatable;
use Doctrine\Common\EventSubscriber;
use Doctrine\ORM\Event\PrePersistEventArgs;
use Doctrine\ORM\Event\PreUpdateEventArgs;
use Doctrine\ORM\Events;

class TranslatablePersistenceListener implements EventSubscriber
{

    public function getSubscribedEvents(): array
    {
        return array(
            Events::prePersist,
            Events::preUpdate
        );
    }

    public function prePersist(PrePersistEventArgs $args)
    {

        if ($this->isTranslatable($args->getObject())) {

            /** @var Translatable $entity */
            $entity = $args->getObject();

            if ($entity->getTranslationSource() != $entity) {

            }

        }
    }

    public function preUpdate(PreUpdateEventArgs $eventArgs)
    {

        if ($this->isTranslatable($eventArgs->getObject())) {

            /** @var Translatable $entity */
            $entity = $eventArgs->getObject();

            if ($entity->getTranslationSource() != $entity) {

            }

        }
    }

    private function isTranslatable($entity): bool
    {
        return $entity && $entity instanceof Translatable;
    }
}