Internal: Only autogenerate Doctrine proxies if they don't exist

pull/4657/head
Angel Fernando Quiroz Campos 3 years ago
parent f99329dfc5
commit ada61aa4f5
  1. 35
      main/inc/lib/database.lib.php

@ -3,10 +3,12 @@
/* For licensing terms, see /license.txt */
use Doctrine\Common\Annotations\AnnotationRegistry;
use Doctrine\Common\Proxy\AbstractProxyFactory;
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Driver\Statement;
use Doctrine\DBAL\Types\Type;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Tools\Setup;
use Symfony\Component\Debug\ExceptionHandler;
/**
@ -148,22 +150,6 @@ class Database
$returnManager = false
) {
$config = self::getDoctrineConfig($entityRootPath);
$autoGenerate = Doctrine\Common\Proxy\AbstractProxyFactory::AUTOGENERATE_NEVER;
if (api_get_setting('server_type') == 'test') {
$autoGenerate = Doctrine\Common\Proxy\AbstractProxyFactory::AUTOGENERATE_ALWAYS;
}
$config->setAutoGenerateProxyClasses($autoGenerate);
$config->setEntityNamespaces(
[
'ChamiloUserBundle' => 'Chamilo\UserBundle\Entity',
'ChamiloCoreBundle' => 'Chamilo\CoreBundle\Entity',
'ChamiloCourseBundle' => 'Chamilo\CourseBundle\Entity',
'ChamiloSkillBundle' => 'Chamilo\SkillBundle\Entity',
'ChamiloTicketBundle' => 'Chamilo\TicketBundle\Entity',
'ChamiloPluginBundle' => 'Chamilo\PluginBundle\Entity',
]
);
$params['charset'] = 'utf8';
$entityManager = EntityManager::create($params, $config);
@ -783,7 +769,7 @@ class Database
*/
public static function getDoctrineConfig($path)
{
$isDevMode = api_get_setting('server_type') == 'test'; // Forces doctrine to use ArrayCache instead of apc/xcache/memcache/redis
$isDevMode = true; // Forces doctrine to use ArrayCache instead of apc/xcache/memcache/redis
$isSimpleMode = false; // related to annotations @Entity
$cache = null;
$path = !empty($path) ? $path : api_get_path(SYS_PATH);
@ -805,7 +791,7 @@ class Database
$proxyDir = $path.'app/cache/';
$config = \Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration(
$config = Setup::createAnnotationMetadataConfiguration(
$paths,
$isDevMode,
$proxyDir,
@ -813,6 +799,19 @@ class Database
$isSimpleMode
);
$config->setAutoGenerateProxyClasses(AbstractProxyFactory::AUTOGENERATE_FILE_NOT_EXISTS);
$config->setEntityNamespaces(
[
'ChamiloUserBundle' => 'Chamilo\UserBundle\Entity',
'ChamiloCoreBundle' => 'Chamilo\CoreBundle\Entity',
'ChamiloCourseBundle' => 'Chamilo\CourseBundle\Entity',
'ChamiloSkillBundle' => 'Chamilo\SkillBundle\Entity',
'ChamiloTicketBundle' => 'Chamilo\TicketBundle\Entity',
'ChamiloPluginBundle' => 'Chamilo\PluginBundle\Entity',
]
);
return $config;
}

Loading…
Cancel
Save