Details
-
Type:
Bug
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 2.3
-
Component/s: None
-
Security Level: All
-
Labels:None
Description
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 [](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)
{ ... }`.
A related Github Pull-Request [GH-315] was synchronize
https://github.com/doctrine/doctrine2/pull/315