Skip to content

Conversation

@c960657
Copy link
Contributor

@c960657 c960657 commented Sep 8, 2015

I miss the ability to reset the entity manager after an exception has been thrown (see e.g. this StackOverflow question), similar to the Symfony approach in Doctrine\Bundle\DoctrineBundle\Registry::resetManager().

With Pimple 3.x, I can do this:

$factory = $container['orm.ems']->raw('default');
unset($container['orm.em']);
$container['orm.em'] = $factory;

AFAICT this approach does not work with Pimple 1.x (see this issue).

This PR introduces a separate factory method for each entity manager. This allows me to reset the entity manager like this:

$app['orm.em'] = $app['orm.ems.factory'][$app['orm.ems.default']]();

@dominikzogg
Copy link

@c960657, i made a manager registry implementation for this orm provider https://github.com/saxulum/saxulum-doctrine-orm-manager-registry-provider

@c960657
Copy link
Contributor Author

c960657 commented Sep 8, 2015

@dominikzogg Thanks, but AFAICT your resetManager() does not work (subsequent calls to $app['doctrine']->getManager() return null). It seems you also need the factory method proposed here in order to make it work.

@c960657
Copy link
Contributor Author

c960657 commented Mar 17, 2016

@simensen Any comments on this? 😄

@c960657
Copy link
Contributor Author

c960657 commented May 8, 2016

Ping? :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants