public static function createEntityManager($admin = FALSE)
{
$config = new ORM\Configuration();
if (Util\Configuration::read('devmode') == FALSE) {
$cache = null;
if (extension_loaded('apcu')) {
$cache = new Cache\ApcuCache();
}
if ($cache) {
$config->setMetadataCacheImpl($cache);
$config->setQueryCacheImpl($cache);
}
} else {
if (extension_loaded('apcu')) {
// clear cache
apcu_clear_cache();
}
}
$driverImpl = $config->newDefaultAnnotationDriver(VZ_DIR . '/lib/Model');
$config->setMetadataDriverImpl($driverImpl);
$config->setProxyDir(VZ_DIR . '/lib/Model/Proxy');
$config->setProxyNamespace('Volkszaehler\\Model\\Proxy');
$config->setAutoGenerateProxyClasses(Util\Configuration::read('devmode'));
$dbConfig = Util\Configuration::read('db');
if ($admin && isset($dbConfig['admin'])) {
$dbConfig = array_merge($dbConfig, $dbConfig['admin']);
}
return ORM\EntityManager::create($dbConfig, $config);
}