Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Separate entity manager factory #61

Open
wants to merge 1 commit into
base: 1.0
Choose a base branch
from

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
Contributor

@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