/** * Class constructor. * * @param object|resource $native * @param array $settings Settings used to create connection */ public function __construct($native, $settings = array()) { $this->native = $native; if (isset($settings)) { $this->settings = $settings; } $config = array_chunk_assoc($this->settings, 'config'); $this->metadata = $config instanceof Config ? $config : Config::with($config, array('mapkey' => array('table_def' => "'#table'", 'field' => '@name', 'alias' => "'#alias:'.@name"))); if (isset($settings['metadata-cache'])) { $this->metadataCache = $settings['metadata-cache']; } if (isset($settings['log']) && load_class('Q\\Log')) { $this->log = $settings['log'] instanceof Logger ? $settings['log'] : Log::with($settings['log']); } elseif (class_exists('Q\\Log') && Log::db()->exists()) { $this->log = Log::db(); } if (isset($settings['log-columns'])) { $this->logColumns = is_string($settings['log-columns']) ? split_set(',', $settings['log-columns']) : (array) $settings['log-columns']; } }