Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class Doctrine
- {
- // the Doctrine entity manager
- public $em = null;
- public function __construct()
- {
- // include our CodeIgniter application's database configuration
- require_once APPPATH.'config/database.php';
- // include Doctrine's fancy ClassLoader class
- require_once APPPATH.'libraries/Doctrine/Common/ClassLoader.php';
- // load the Doctrine classes
- $doctrineClassLoader = new \Doctrine\Common\ClassLoader('Doctrine', APPPATH.'libraries');
- $doctrineClassLoader->register();
- // load Symfony2 helpers
- // Don't be alarmed, this is necessary for YAML mapping files
- $symfonyClassLoader = new \Doctrine\Common\ClassLoader('Symfony', APPPATH.'libraries/Doctrine');
- $symfonyClassLoader->register();
- // load the entities
- $entityClassLoader = new \Doctrine\Common\ClassLoader('Entities', APPPATH.'models/Entities');
- $entityClassLoader->register();
- // load the proxy entities
- $proxyClassLoader = new \Doctrine\Common\ClassLoader('Proxies', APPPATH.'models');
- $proxyClassLoader->register();
- // set up the configuration
- $config = new \Doctrine\ORM\Configuration;
- if(ENVIRONMENT == 'development')
- // set up simple array caching for development mode
- $cache = new \Doctrine\Common\Cache\ArrayCache;
- else
- // set up caching with APC for production mode
- $cache = new \Doctrine\Common\Cache\ApcCache;
- $config->setMetadataCacheImpl($cache);
- $config->setQueryCacheImpl($cache);
- // set up proxy configuration
- $config->setProxyDir(APPPATH.'models/Proxies');
- $config->setProxyNamespace('Proxies');
- // auto-generate proxy classes if we are in development mode
- $config->setAutoGenerateProxyClasses(ENVIRONMENT == 'development');
- // set up annotation driver
- $yamlDriver = new \Doctrine\ORM\Mapping\Driver\YamlDriver(APPPATH.'models/Mappings');
- $config->setMetadataDriverImpl($yamlDriver);
- // Database connection information
- $connectionOptions = array(
- 'driver' => 'pdo_mysql',
- 'user' => $db['default']['username'],
- 'password' => $db['default']['password'],
- 'host' => $db['default']['hostname'],
- 'dbname' => $db['default']['database']
- );
- // create the EntityManager
- $em = \Doctrine\ORM\EntityManager::create($connectionOptions, $config);
- // store it as a member, for use in our CodeIgniter controllers.
- $this->em = $em;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement