Atrauzzi\LaravelDoctrine\ServiceProvider::createDoctrineConfig PHP 메소드

createDoctrineConfig() 보호된 메소드

protected createDoctrineConfig ( $cache ) : Doctrine\ORM\Configuration
$cache
리턴 Doctrine\ORM\Configuration
    protected function createDoctrineConfig($cache)
    {
        $debug = config('doctrine.debug', config('app.debug', false));
        $metadataConfig = config('doctrine.metadata', ['driver' => 'config']);
        $proxyDir = config('doctrine.proxy_classes.directory', storage_path('doctrine/proxies'));
        // Note: Don't worry, caches are configured below.
        $doctrineConfig = Setup::createConfiguration($debug, $proxyDir, null);
        if (!empty($metadataConfig) && isset($metadataConfig[0]) && is_array($metadataConfig[0])) {
            $metadataDriver = new \Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain();
            foreach ($metadataConfig as $subDriverConfig) {
                if (!is_array($subDriverConfig)) {
                    continue;
                }
                $metadataDriver->addDriver($this->createMetadataDriver($doctrineConfig, $subDriverConfig), array_get($subDriverConfig, 'namespace', 'App'));
                if (isset($subDriverConfig['namespace']) && isset($subDriverConfig['alias'])) {
                    $doctrineConfig->addEntityNamespace($subDriverConfig['alias'], $subDriverConfig['namespace']);
                }
            }
        } else {
            $metadataDriver = $this->createMetadataDriver($doctrineConfig, $metadataConfig);
        }
        $doctrineConfig->setMetadataDriverImpl($metadataDriver);
        //add in trig functions to doctrine for mysql
        $doctrineConfig->setCustomDatetimeFunctions(config('doctrine.custom_datetime_functions') ?: []);
        $doctrineConfig->setCustomNumericFunctions(config('doctrine.custom_numeric_functions') ?: []);
        $doctrineConfig->setCustomStringFunctions(config('doctrine.custom_string_functions') ?: []);
        // Note: These must occur after Setup::createAnnotationMetadataConfiguration() in order to set custom namespaces properly
        if ($cache) {
            $doctrineConfig->setMetadataCacheImpl($cache);
            $doctrineConfig->setQueryCacheImpl($cache);
            $doctrineConfig->setResultCacheImpl($cache);
        }
        $doctrineConfig->setAutoGenerateProxyClasses(config('doctrine.proxy_classes.auto_generate', !$debug));
        $doctrineConfig->setDefaultRepositoryClassName(config('doctrine.default_repository', '\\Doctrine\\ORM\\EntityRepository'));
        $doctrineConfig->setSQLLogger(config('doctrine.sql_logger'));
        if ($proxyClassNamespace = config('doctrine.proxy_classes.namespace')) {
            $doctrineConfig->setProxyNamespace($proxyClassNamespace);
        }
        return $doctrineConfig;
    }