Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 25 additions & 21 deletions src/Configuration/Connections/MysqlConnection.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace LaravelDoctrine\ORM\Configuration\Connections;

use Illuminate\Support\Arr;
use function array_merge;

class MysqlConnection extends Connection
{
Expand All @@ -15,25 +15,29 @@ class MysqlConnection extends Connection
*/
public function resolve(array $settings = []): array
{
return [
'driver' => 'pdo_mysql',
'host' => Arr::get($settings, 'host'),
'dbname' => Arr::get($settings, 'database'),
'user' => Arr::get($settings, 'username'),
'password' => Arr::get($settings, 'password'),
'charset' => Arr::get($settings, 'charset'),
'port' => Arr::get($settings, 'port'),
'unix_socket' => Arr::get($settings, 'unix_socket'),
'ssl_key' => Arr::get($settings, 'ssl_key'),
'ssl_cert' => Arr::get($settings, 'ssl_cert'),
'ssl_ca' => Arr::get($settings, 'ssl_ca'),
'ssl_capath' => Arr::get($settings, 'ssl_capath'),
'ssl_cipher' => Arr::get($settings, 'ssl_cipher'),
'prefix' => Arr::get($settings, 'prefix'),
'defaultTableOptions' => Arr::get($settings, 'defaultTableOptions', []),
'serverVersion' => Arr::get($settings, 'serverVersion'),
'wrapperClass' => Arr::get($settings, 'wrapperClass'),
'driverOptions' => Arr::get($settings, 'options', []),
];
$overrides = ['driver' => 'pdo_mysql'];

// Map Laravel keys to Doctrine DBAL keys
if (isset($settings['database'])) {
$overrides['dbname'] = $settings['database'];
unset($settings['database']);
}

if (isset($settings['username'])) {
$overrides['user'] = $settings['username'];
unset($settings['username']);
}

if (isset($settings['options'])) {
$overrides['driverOptions'] = $settings['options'];
unset($settings['options']);
}

// Set default for defaultTableOptions if not present
if (! isset($settings['defaultTableOptions'])) {
$overrides['defaultTableOptions'] = [];
}

return array_merge($settings, $overrides);
}
}
47 changes: 30 additions & 17 deletions src/Configuration/Connections/OracleConnection.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace LaravelDoctrine\ORM\Configuration\Connections;

use Illuminate\Support\Arr;
use function array_merge;

class OracleConnection extends Connection
{
Expand All @@ -15,21 +15,34 @@ class OracleConnection extends Connection
*/
public function resolve(array $settings = []): array
{
return [
'driver' => 'oci8',
'host' => Arr::get($settings, 'host'),
'dbname' => Arr::get($settings, 'database'),
'servicename' => Arr::get($settings, 'service_name'),
'service' => Arr::get($settings, 'service'),
'user' => Arr::get($settings, 'username'),
'password' => Arr::get($settings, 'password'),
'charset' => Arr::get($settings, 'charset'),
'port' => Arr::get($settings, 'port'),
'prefix' => Arr::get($settings, 'prefix'),
'defaultTableOptions' => Arr::get($settings, 'defaultTableOptions', []),
'persistent' => Arr::get($settings, 'persistent'),
'wrapperClass' => Arr::get($settings, 'wrapperClass'),
'connectstring' => Arr::get($settings, 'connectstring'),
];
$overrides = ['driver' => 'oci8'];

// Map Laravel keys to Doctrine DBAL keys
if (isset($settings['database'])) {
$overrides['dbname'] = $settings['database'];
unset($settings['database']);
}

if (isset($settings['username'])) {
$overrides['user'] = $settings['username'];
unset($settings['username']);
}

if (isset($settings['service_name'])) {
$overrides['servicename'] = $settings['service_name'];
unset($settings['service_name']);
}

if (isset($settings['options'])) {
$overrides['driverOptions'] = $settings['options'];
unset($settings['options']);
}

// Set default for defaultTableOptions if not present
if (! isset($settings['defaultTableOptions'])) {
$overrides['defaultTableOptions'] = [];
}

return array_merge($settings, $overrides);
}
}
46 changes: 25 additions & 21 deletions src/Configuration/Connections/PgsqlConnection.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace LaravelDoctrine\ORM\Configuration\Connections;

use Illuminate\Support\Arr;
use function array_merge;

class PgsqlConnection extends Connection
{
Expand All @@ -15,25 +15,29 @@ class PgsqlConnection extends Connection
*/
public function resolve(array $settings = []): array
{
return [
'driver' => 'pdo_pgsql',
'host' => Arr::get($settings, 'host'),
'dbname' => Arr::get($settings, 'database'),
'user' => Arr::get($settings, 'username'),
'password' => Arr::get($settings, 'password'),
'charset' => Arr::get($settings, 'charset'),
'port' => Arr::get($settings, 'port'),
'sslmode' => Arr::get($settings, 'sslmode'),
'sslkey' => Arr::get($settings, 'sslkey'),
'sslcert' => Arr::get($settings, 'sslcert'),
'sslrootcert' => Arr::get($settings, 'sslrootcert'),
'sslcrl' => Arr::get($settings, 'sslcrl'),
'gssencmode' => Arr::get($settings, 'gssencmode'),
'prefix' => Arr::get($settings, 'prefix'),
'defaultTableOptions' => Arr::get($settings, 'defaultTableOptions', []),
'serverVersion' => Arr::get($settings, 'serverVersion'),
'wrapperClass' => Arr::get($settings, 'wrapperClass'),
'driverOptions' => Arr::get($settings, 'options', []),
];
$overrides = ['driver' => 'pdo_pgsql'];

// Map Laravel keys to Doctrine DBAL keys
if (isset($settings['database'])) {
$overrides['dbname'] = $settings['database'];
unset($settings['database']);
}

if (isset($settings['username'])) {
$overrides['user'] = $settings['username'];
unset($settings['username']);
}

if (isset($settings['options'])) {
$overrides['driverOptions'] = $settings['options'];
unset($settings['options']);
}

// Set default for defaultTableOptions if not present
if (! isset($settings['defaultTableOptions'])) {
$overrides['defaultTableOptions'] = [];
}

return array_merge($settings, $overrides);
}
}
39 changes: 28 additions & 11 deletions src/Configuration/Connections/SqliteConnection.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
use Illuminate\Support\Arr;
use Illuminate\Support\Str;

use function array_merge;

class SqliteConnection extends Connection
{
/**
Expand All @@ -16,17 +18,32 @@ class SqliteConnection extends Connection
*/
public function resolve(array $settings = []): array
{
return [
'driver' => 'pdo_sqlite',
'user' => Arr::get($settings, 'username'),
'password' => Arr::get($settings, 'password'),
'prefix' => Arr::get($settings, 'prefix'),
'memory' => $this->isMemory($settings),
'path' => Arr::get($settings, 'database'),
'defaultTableOptions' => Arr::get($settings, 'defaultTableOptions', []),
'driverOptions' => Arr::get($settings, 'options', []),
'wrapperClass' => Arr::get($settings, 'wrapperClass'),
];
$overrides = ['driver' => 'pdo_sqlite'];

$overrides['memory'] = $this->isMemory($settings);

// Map Laravel keys to Doctrine DBAL keys
if (isset($settings['database'])) {
$overrides['path'] = $settings['database'];
unset($settings['database']);
}

if (isset($settings['username'])) {
$overrides['user'] = $settings['username'];
unset($settings['username']);
}

if (isset($settings['options'])) {
$overrides['driverOptions'] = $settings['options'];
unset($settings['options']);
}

// Set default for defaultTableOptions if not present
if (! isset($settings['defaultTableOptions'])) {
$overrides['defaultTableOptions'] = [];
}

return array_merge($settings, $overrides);
}

/** @param mixed[] $settings */
Expand Down
59 changes: 33 additions & 26 deletions src/Configuration/Connections/SqlsrvConnection.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

namespace LaravelDoctrine\ORM\Configuration\Connections;

use Illuminate\Support\Arr;

use function array_merge;

class SqlsrvConnection extends Connection
Expand All @@ -17,29 +15,38 @@ class SqlsrvConnection extends Connection
*/
public function resolve(array $settings = []): array
{
return [
'driver' => 'pdo_sqlsrv',
'host' => Arr::get($settings, 'host'),
'dbname' => Arr::get($settings, 'database'),
'user' => Arr::get($settings, 'username'),
'password' => Arr::get($settings, 'password'),
'port' => Arr::get($settings, 'port'),
'prefix' => Arr::get($settings, 'prefix'),
'charset' => Arr::get($settings, 'charset'),
'defaultTableOptions' => Arr::get($settings, 'defaultTableOptions', []),
'serverVersion' => Arr::get($settings, 'serverVersion'),
'wrapperClass' => Arr::get($settings, 'wrapperClass'),
'driverOptions' => array_merge(
Arr::get($settings, 'options', []),
// @codeCoverageIgnoreStart
isset($settings['encrypt'])
? ['encrypt' => Arr::get($settings, 'encrypt')]
: [],
isset($settings['trust_server_certificate'])
? ['trustServerCertificate' => Arr::get($settings, 'trust_server_certificate')]
: [],
// @codeCoverageIgnoreEnd
),
];
$overrides = ['driver' => 'pdo_sqlsrv'];

// Map Laravel keys to Doctrine DBAL keys
if (isset($settings['database'])) {
$overrides['dbname'] = $settings['database'];
unset($settings['database']);
}

if (isset($settings['username'])) {
$overrides['user'] = $settings['username'];
unset($settings['username']);
}

$overrides['driverOptions'] = [];
if (isset($settings['options'])) {
$overrides['driverOptions'] = $settings['options'];
unset($settings['options']);
}

if (isset($settings['encrypt'])) {
$overrides['driverOptions']['encrypt'] = $settings['encrypt'];
}

if (isset($settings['trust_server_certificate'])) {
$overrides['driverOptions']['trustServerCertificate'] = $settings['trust_server_certificate'];
}

// Set default for defaultTableOptions if not present
if (! isset($settings['defaultTableOptions'])) {
$overrides['defaultTableOptions'] = [];
}

return array_merge($settings, $overrides);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,25 +29,28 @@ public function testCanResolve(): void
$resolved = $this->connection->resolve([
'driver' => 'oci8',
'host' => 'host',
'service_name' => 'service_name',
'database' => 'database',
'username' => 'username',
'password' => 'password',
'charset' => 'charset',
'port' => 'port',
'prefix' => 'prefix',
'defaultTableOptions' => [],
'options' => [],
'persistent' => 'persistent',
]);

$this->assertEquals('oci8', $resolved['driver']);
$this->assertEquals('host', $resolved['host']);
$this->assertEquals('service_name', $resolved['servicename']);
$this->assertEquals('database', $resolved['dbname']);
$this->assertEquals('username', $resolved['user']);
$this->assertEquals('password', $resolved['password']);
$this->assertEquals('charset', $resolved['charset']);
$this->assertEquals('port', $resolved['port']);
$this->assertEquals('prefix', $resolved['prefix']);
$this->assertCount(0, $resolved['defaultTableOptions']);
$this->assertCount(0, $resolved['driverOptions']);
$this->assertEquals('persistent', $resolved['persistent']);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ public function testCanResolve(): void
'sslrootcert' => 'sslrootcert',
'sslcrl' => 'sslcrl',
'gssencmode' => 'gssencmode',
'defaultTableOptions' => [],
'driverOptions' => [],
'application_name' => 'application_name',
'options' => [],
]);

$this->assertEquals('pdo_pgsql', $resolved['driver']);
Expand All @@ -59,6 +59,7 @@ public function testCanResolve(): void
$this->assertEquals('sslcrl', $resolved['sslcrl']);
$this->assertEquals('gssencmode', $resolved['gssencmode']);
$this->assertEquals('prefix', $resolved['prefix']);
$this->assertEquals('application_name', $resolved['application_name']);
$this->assertCount(0, $resolved['defaultTableOptions']);
$this->assertCount(0, $resolved['driverOptions']);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,7 @@ public function testCanResolve(): void
'username' => 'username',
'password' => 'password',
'prefix' => 'prefix',
'defaultTableOptions' => [],
'driverOptions' => [],
'options' => [],
]);

$this->assertEquals('pdo_sqlite', $resolved['driver']);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,9 @@ public function testCanResolve(): void
'port' => 'port',
'prefix' => 'prefix',
'charset' => 'charset',
'defaultTableOptions' => [],
'driverOptions' => [],
'encrypt' => 'encrypt',
'trust_server_certificate' => 'trust_server_certificate',
'options' => [],
]);

$this->assertEquals('pdo_sqlsrv', $resolved['driver']);
Expand All @@ -48,7 +49,8 @@ public function testCanResolve(): void
$this->assertEquals('prefix', $resolved['prefix']);
$this->assertEquals('charset', $resolved['charset']);
$this->assertCount(0, $resolved['defaultTableOptions']);
$this->assertCount(0, $resolved['driverOptions']);
$this->assertEquals('encrypt', $resolved['driverOptions']['encrypt']);
$this->assertEquals('trust_server_certificate', $resolved['driverOptions']['trustServerCertificate']);
}

protected function tearDown(): void
Expand Down
Loading