<?php | |
class TxController extends Controller | |
{ | |
public function context($id) | |
{ | |
return new TxProxy($this->get($id), $this->get('doctrine.orm.default_entity_manager')); | |
} | |
} |
<?php | |
use Doctrine\ORM\EntityManager; | |
class TxProxy | |
{ | |
private $service; | |
private $entityManager; | |
public function __construct($service, EntityManager $entityManager) | |
{ | |
$this->service = $service; | |
$this->entityManager = $entityManager; | |
} | |
public function __call($method, $args) | |
{ | |
$callback = array($this->service, $method); | |
return $this->entityManager->transactional(function() use ($callback, $args) { | |
return call_user_func_array($callback, $args); | |
}); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment