doctrine/doctrine2 — pull request #315 by Ocramius (2012-03-31 00:36:39+00:00)
Title: [WIP] Allowing proxies to be passed to ORM public API

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) { ... }`.