DDC-1743: [GH-315] [WIP] Allowing proxies to be passed to ORM public API #2191

Closed
opened 2026-01-22 13:43:48 +01:00 by admin · 8 comments
Owner

Originally created by @doctrinebot on GitHub (Mar 31, 2012).

Originally assigned to: @beberlei on GitHub.

Jira issue originally created by user @beberlei:

This issue is created automatically through a Github pull request on behalf of Ocramius:

Url: https://github.com/doctrine/doctrine2/pull/315

Message:

Basically, following happens:

$proxy = some_unserialization();
$em->persist($proxy); // exception because the class name is not recognized

Fortunately, just some replacements of get_class($entity) with Doctrine\Common\Util\ClassUtils::getClass($entity) fix the issue.

I wanted to leave this as [WIP] because I need some feedback on the test cases. All three tests fail without the patch, while Build Status with it applied.

What is a bit tricky is the status of the proxies.

Cases where $*_initialized__ = false; && $*identifier = array(); and others fail because of notices and weird issues that are very difficult to hunt down. That is because of the strange nature of proxies obviously. I just wanted to know if this should be somehow fixed in here.

Another issue is probably performance, as there is some minor overhead introduced. What I'd like to know is if https://github.com/doctrine/common/blob/master/lib/Doctrine/Common/Util/ClassUtils.php#L56 could be reduced to a if ($object instanceof Proxy) { ... }.

Originally created by @doctrinebot on GitHub (Mar 31, 2012). Originally assigned to: @beberlei on GitHub. Jira issue originally created by user @beberlei: This issue is created automatically through a Github pull request on behalf of Ocramius: Url: https://github.com/doctrine/doctrine2/pull/315 Message: Basically, following happens: ``` php $proxy = some_unserialization(); $em->persist($proxy); // exception because the class name is not recognized ``` Fortunately, just some replacements of `get_class($entity)` with `Doctrine\Common\Util\ClassUtils::getClass($entity)` fix the issue. I wanted to leave this as [WIP] because I need some feedback on the test cases. All three tests fail without the patch, while [![Build Status](https://secure.travis-ci.org/Ocramius/doctrine2.png?branch=getclass-on-proxies-refactoring)](http://travis-ci.org/Ocramius/doctrine2) with it applied. What is a bit tricky is the status of the proxies. Cases where `$*_initialized__ = false;` && `$*identifier = array();` and others fail because of notices and weird issues that are very difficult to hunt down. That is because of the strange nature of proxies obviously. I just wanted to know if this should be somehow fixed in here. Another issue is probably performance, as there is some minor overhead introduced. What I'd like to know is if https://github.com/doctrine/common/blob/master/lib/Doctrine/Common/Util/ClassUtils.php#L56 could be reduced to a `if ($object instanceof Proxy) { ... }`.
admin added the Bug label 2026-01-22 13:43:48 +01:00
admin closed this issue 2026-01-22 13:43:48 +01:00
Author
Owner

@doctrinebot commented on GitHub (Mar 31, 2012):

Comment created by @beberlei:

A related Github Pull-Request [GH-315] was synchronize
https://github.com/doctrine/doctrine2/pull/315

@doctrinebot commented on GitHub (Mar 31, 2012): Comment created by @beberlei: A related Github Pull-Request [GH-315] was synchronize https://github.com/doctrine/doctrine2/pull/315
Author
Owner

@doctrinebot commented on GitHub (Apr 1, 2012):

Comment created by @beberlei:

A related Github Pull-Request [GH-315] was synchronize
https://github.com/doctrine/doctrine2/pull/315

@doctrinebot commented on GitHub (Apr 1, 2012): Comment created by @beberlei: A related Github Pull-Request [GH-315] was synchronize https://github.com/doctrine/doctrine2/pull/315
Author
Owner

@doctrinebot commented on GitHub (Apr 1, 2012):

Comment created by @beberlei:

A related Github Pull-Request [GH-315] was synchronize
https://github.com/doctrine/doctrine2/pull/315

@doctrinebot commented on GitHub (Apr 1, 2012): Comment created by @beberlei: A related Github Pull-Request [GH-315] was synchronize https://github.com/doctrine/doctrine2/pull/315
Author
Owner

@doctrinebot commented on GitHub (Apr 4, 2012):

Comment created by @beberlei:

A related Github Pull-Request [GH-315] was synchronize
https://github.com/doctrine/doctrine2/pull/315

@doctrinebot commented on GitHub (Apr 4, 2012): Comment created by @beberlei: A related Github Pull-Request [GH-315] was synchronize https://github.com/doctrine/doctrine2/pull/315
Author
Owner

@doctrinebot commented on GitHub (Apr 6, 2012):

Comment created by @beberlei:

A related Github Pull-Request [GH-315] was synchronize
https://github.com/doctrine/doctrine2/pull/315

@doctrinebot commented on GitHub (Apr 6, 2012): Comment created by @beberlei: A related Github Pull-Request [GH-315] was synchronize https://github.com/doctrine/doctrine2/pull/315
Author
Owner

@doctrinebot commented on GitHub (Apr 7, 2012):

Comment created by @beberlei:

A related Github Pull-Request [GH-315] was synchronize
https://github.com/doctrine/doctrine2/pull/315

@doctrinebot commented on GitHub (Apr 7, 2012): Comment created by @beberlei: A related Github Pull-Request [GH-315] was synchronize https://github.com/doctrine/doctrine2/pull/315
Author
Owner

@doctrinebot commented on GitHub (May 4, 2012):

Issue was closed with resolution "Fixed"

@doctrinebot commented on GitHub (May 4, 2012): Issue was closed with resolution "Fixed"
Author
Owner

@doctrinebot commented on GitHub (May 19, 2014):

Comment created by @doctrinebot:

A related Github Pull-Request [GH-315] was closed:
https://github.com/doctrine/common/pull/315

@doctrinebot commented on GitHub (May 19, 2014): Comment created by @doctrinebot: A related Github Pull-Request [GH-315] was closed: https://github.com/doctrine/common/pull/315
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#2191