Esempio n. 1
0
 public function testSqliteAdapter()
 {
     $pdo = new PDO('sqlite::memory:');
     $adapter = new SqliteAdapter($pdo);
     $this->assertInstanceOf('\\Phoenix\\Database\\QueryBuilder\\QueryBuilderInterface', $adapter->getQueryBuilder());
     $pdo->query('CREATE TABLE "test" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,"title" varchar(255) NOT NULL);');
     $tableInfo = $adapter->tableInfo('test');
     $this->assertCount(2, $tableInfo);
     $this->assertArrayHasKey('id', $tableInfo);
     $this->assertArrayHasKey('title', $tableInfo);
     foreach ($tableInfo as $column) {
         $this->assertInstanceOf('\\Phoenix\\Database\\Element\\Column', $column);
     }
 }
Esempio n. 2
0
 public static function instance(EnvironmentConfig $config)
 {
     $configHash = md5(json_encode($config->getConfiguration()));
     if (isset(self::$instances[$configHash])) {
         return self::$instances[$configHash];
     }
     $pdo = new PDO($config->getDsn(), $config->getUsername(), $config->getPassword());
     if ($config->getAdapter() == 'mysql') {
         $adapter = new MysqlAdapter($pdo);
     } elseif ($config->getAdapter() == 'pgsql') {
         $adapter = new PgsqlAdapter($pdo);
     } elseif ($config->getAdapter() == 'sqlite') {
         $adapter = new SqliteAdapter($pdo);
     } else {
         throw new InvalidArgumentValueException('Unknown adapter "' . $config->getAdapter() . '". Use one of value: "mysql", "pgsql", "sqlite".');
     }
     $adapter->setCharset($config->getCharset());
     self::$instances[$configHash] = $adapter;
     return $adapter;
 }