lstrojny/procrastinator-bundle

Symfony2 integration for Procrastinator (lstrojny/procrastinator)

2.4.1 2014-01-19 22:49 UTC

This package is auto-updated.

Last update: 2024-04-16 05:12:08 UTC


README

Symfony2 integration for Procrastinator

Example usage in controller to execute event only if the postFlush event in Doctrine occured

<?php
use Procrastinator\Deferred\DoctrineEventConditionalDeferred as Deferred;
use Doctrine\ORM\Events as OrmEvents;

class MyController ...
{
    public function sendMailAction()
    {
        $entry = new Entity();
        $entry->setText('hello world');

        $message = Message::newInstance()
                    ->setSubject('hello')
                    ->setBody('new entry');
        $mailer = $this->get('mailer');


        $procrastinator->register(
            $procrastinator
                ->newDeferred()
                ->ifDoctrineEvent(OrmEvents::postFlush)
                ->name('sendMail')
                ->call(function() use ($mailer, $message) { $mailer->send($message); })
                ->build()
        );


        $em = $this->get('doctrine.orm.default_entity_manager');
        $em->persist($entry);
        $em->flush();
    }
}