/** * @param string $config * * @CakeDbConfig */ public function __construct($config) { if (is_array($config)) { $this->config = $config; return; } if (!class_exists('Cake\\Datasource\\ConnectionManager')) { throw new \InvalidArgumentException('Could not parse configuration for @CakeDbConfig'); } if (strpos($config, '://') !== false) { $this->config = ConnectionManager::parseDsn($config); return; } $this->config = $config; }
/** * Test parseDsn method. * * @return void */ public function testParseDsn() { $result = ConnectionManager::parseDsn('mysql://*****:*****@localhost:3306/database?log=1'); $expected = ['scheme' => 'mysql', 'className' => 'Cake\\Database\\Connection', 'driver' => 'Cake\\Database\\Driver\\Mysql', 'host' => 'localhost', 'username' => 'root', 'password' => 'secret', 'port' => 3306, 'database' => 'database', 'log' => '1']; $this->assertEquals($expected, $result); }