Skip to content

Commit 50cb486

Browse files
author
Martin Parsiegla
committed
Fixed proxy generation in the DoctrineBundle when using Doctrine >= 2.2.0
1 parent 92c5785 commit 50cb486

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/Symfony/Bundle/DoctrineBundle/DoctrineBundle.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
use Symfony\Bundle\DoctrineBundle\DependencyInjection\Compiler\RegisterEventListenersAndSubscribersPass;
1616
use Symfony\Component\DependencyInjection\ContainerBuilder;
1717
use Symfony\Component\HttpKernel\Bundle\Bundle;
18+
use Doctrine\ORM\Version;
19+
use Doctrine\Common\Util\ClassUtils;
1820

1921
/**
2022
* Bundle.
@@ -49,11 +51,16 @@ class_exists('Doctrine\ORM\Mapping\Driver\AnnotationDriver');
4951
$this->autoloader = function($class) use ($namespace, $dir, &$container) {
5052
if (0 === strpos($class, $namespace)) {
5153
$className = substr($class, strlen($namespace) +1);
52-
$file = $dir.DIRECTORY_SEPARATOR.$className.'.php';
54+
$file = $dir.DIRECTORY_SEPARATOR.str_replace('\\', '', $className).'.php';
5355

5456
if (!file_exists($file) && $container->getParameter('kernel.debug')) {
55-
$originalClassName = substr($className, 0, -5);
5657
$registry = $container->get('doctrine');
58+
if (1 === Version::compare('2.2.0')) {
59+
$originalClassName = substr($className, 0, -5);
60+
} else {
61+
$originalClassName = ClassUtils::getRealClass($className);
62+
$originalClassName = str_replace('\\', '', $originalClassName);
63+
}
5764

5865
// Tries to auto-generate the proxy file
5966
foreach ($registry->getEntityManagers() as $em) {

0 commit comments

Comments
 (0)