lithium\data\source\Database::__construct PHP Method

__construct() public method

Constructor.
public __construct ( array $config = [] ) : void
$config array array Available configuration options are: - `'database'` _string_: Name of the database to use. Defaults to `null`. - `'host'` _string_: Name/address of server to connect to. Defaults to `'localhost'`. - `'login'` _string_: Username to use when connecting to server. Defaults to `'root'`. - `'password'` _string_: Password to use when connecting to server. Defaults to `''`. - `'persistent'` _boolean_: If true a persistent connection will be attempted, provided the adapter supports it. Defaults to `true`.
return void
    public function __construct(array $config = array())
    {
        $defaults = array('persistent' => true, 'host' => 'localhost', 'login' => 'root', 'password' => '', 'database' => null, 'encoding' => null, 'dsn' => null, 'options' => array());
        parent::__construct($config + $defaults);
    }

Usage Example

Example #1
0
 /**
  *
  */
 public function __construct($config = array())
 {
     $defaults = array('proxy' => array('auto' => true, 'path' => LITHIUM_APP_PATH . '/resources/tmp/cache/Doctrine/Proxies', 'namespace' => 'Doctrine\\Proxies'), 'useModelDriver' => true, 'mapping' => array('class' => null, 'path' => LITHIUM_APP_PATH . '/models'), 'configuration' => null, 'eventManager' => null, 'utf-8' => true);
     $config = Set::merge($defaults, $config);
     $configuration = $config['configuration'] ?: new Configuration();
     $eventManager = $config['eventManager'] ?: new EventManager();
     $configuration->setProxyDir($config['proxy']['path']);
     $configuration->setProxyNamespace($config['proxy']['namespace']);
     $configuration->setAutoGenerateProxyClasses($config['proxy']['auto']);
     $configuration->setMetadataCacheImpl(new ArrayCache());
     // Annotation Driver
     $driver = $configuration->newDefaultAnnotationDriver(array(LITHIUM_APP_PATH . '/models'));
     $configuration->setMetadataDriverImpl($driver);
     // TODO: Not sure if this is required or not!
     // if (!$config['useModelDriver']) {
     // 	$configuration->setMetadataDriverImpl(new ModelDriver());
     // }
     $configuration->setSqlLogger(new SqlLogger());
     $mapping = array('adapter' => 'driver', 'login' => 'user', 'database' => 'dbname');
     foreach ($mapping as $source => $dest) {
         if (isset($config[$source]) && !isset($config[$dest])) {
             $config[$dest] = $config[$source];
             unset($config[$source]);
         }
     }
     $this->_em = EntityManager::create($config, $configuration, $eventManager);
     $this->_sm = $this->_em->getConnection()->getSchemaManager();
     if ($this->_em->getConnection()->getDriver() instanceof Driver\PDOMySql\Driver && $config['utf-8']) {
         $this->_em->getEventManager()->addEventSubscriber(new MysqlSessionInit('utf8', 'utf8_unicode_ci'));
     }
     parent::__construct($config);
 }
All Usage Examples Of lithium\data\source\Database::__construct