Unverified Commit 657da133 authored by Jens Segers's avatar Jens Segers Committed by GitHub

Merge pull request #1457 from halaei/fix-dsn-when-not-unix-socket

fix dsn config when not unix socket
parents 9df75b74 0e693886
...@@ -4,7 +4,6 @@ namespace Jenssegers\Mongodb; ...@@ -4,7 +4,6 @@ namespace Jenssegers\Mongodb;
use Illuminate\Database\Connection as BaseConnection; use Illuminate\Database\Connection as BaseConnection;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use MongoDB\Client; use MongoDB\Client;
class Connection extends BaseConnection class Connection extends BaseConnection
...@@ -151,7 +150,7 @@ class Connection extends BaseConnection ...@@ -151,7 +150,7 @@ class Connection extends BaseConnection
} }
/** /**
* Determine if the given configuration array has a UNIX socket value. * Determine if the given configuration array has a dsn string.
* *
* @param array $config * @param array $config
* @return bool * @return bool
...@@ -162,22 +161,14 @@ class Connection extends BaseConnection ...@@ -162,22 +161,14 @@ class Connection extends BaseConnection
} }
/** /**
* Get the DSN string for a socket configuration. * Get the DSN string form configuration.
* *
* @param array $config * @param array $config
* @return string * @return string
*/ */
protected function getDsnString(array $config) protected function getDsnString(array $config)
{ {
$dsn_string = $config['dsn']; return $config['dsn'];
if (Str::contains($dsn_string, 'mongodb://')) {
$dsn_string = Str::replaceFirst('mongodb://', '', $dsn_string);
}
$dsn_string = rawurlencode($dsn_string);
return "mongodb://{$dsn_string}";
} }
/** /**
......
<?php
class DsnTest extends TestCase
{
public function test_dsn_works()
{
$this->assertInstanceOf(\Illuminate\Database\Eloquent\Collection::class, DsnAddress::all());
}
}
class DsnAddress extends Address
{
protected $connection = 'dsn_mongodb';
}
...@@ -51,6 +51,7 @@ class TestCase extends Orchestra\Testbench\TestCase ...@@ -51,6 +51,7 @@ class TestCase extends Orchestra\Testbench\TestCase
$app['config']->set('database.default', 'mongodb'); $app['config']->set('database.default', 'mongodb');
$app['config']->set('database.connections.mysql', $config['connections']['mysql']); $app['config']->set('database.connections.mysql', $config['connections']['mysql']);
$app['config']->set('database.connections.mongodb', $config['connections']['mongodb']); $app['config']->set('database.connections.mongodb', $config['connections']['mongodb']);
$app['config']->set('database.connections.dsn_mongodb', $config['connections']['dsn_mongodb']);
$app['config']->set('auth.model', 'User'); $app['config']->set('auth.model', 'User');
$app['config']->set('auth.providers.users.model', 'User'); $app['config']->set('auth.providers.users.model', 'User');
......
...@@ -11,6 +11,12 @@ return [ ...@@ -11,6 +11,12 @@ return [
'database' => 'unittest', 'database' => 'unittest',
], ],
'dsn_mongodb' => [
'driver' => 'mongodb',
'dsn' => 'mongodb://mongodb:27017',
'database' => 'unittest',
],
'mysql' => [ 'mysql' => [
'driver' => 'mysql', 'driver' => 'mysql',
'host' => 'mysql', 'host' => 'mysql',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment