From 90521f1743dd4fa5c650ea4d15be6987d36032cc Mon Sep 17 00:00:00 2001 From: Mathieu TUDISCO Date: Sat, 25 May 2019 22:09:48 +0200 Subject: [PATCH 1/3] Remove UrlParser from database. --- ConfigurationUrlParser.php | 190 ------------------------------------- 1 file changed, 190 deletions(-) delete mode 100644 ConfigurationUrlParser.php diff --git a/ConfigurationUrlParser.php b/ConfigurationUrlParser.php deleted file mode 100644 index 2b2430c11..000000000 --- a/ConfigurationUrlParser.php +++ /dev/null @@ -1,190 +0,0 @@ - 'sqlsrv', - 'mysql2' => 'mysql', // RDS - 'postgres' => 'pgsql', - 'postgresql' => 'pgsql', - 'sqlite3' => 'sqlite', - ]; - - /** - * Parse the database configuration, hydrating options using a database configuration URL if possible. - * - * @param array|string $config - * @return array - */ - public function parseConfiguration($config) - { - if (is_string($config)) { - $config = ['url' => $config]; - } - - $url = $config['url'] ?? null; - - $config = Arr::except($config, 'url'); - - if (! $url) { - return $config; - } - - $parsedUrl = $this->parseUrl($url); - - return array_merge( - $config, - $this->getPrimaryOptions($parsedUrl), - $this->getQueryOptions($parsedUrl) - ); - } - - /** - * Get the primary database connection options. - * - * @param array $url - * @return array - */ - protected function getPrimaryOptions($url) - { - return array_filter([ - 'driver' => $this->getDriver($url), - 'database' => $this->getDatabase($url), - 'host' => $url['host'] ?? null, - 'port' => $url['port'] ?? null, - 'username' => $url['user'] ?? null, - 'password' => $url['pass'] ?? null, - ], function ($value) { - return ! is_null($value); - }); - } - - /** - * Get the database driver from the URL. - * - * @param array $url - * @return string|null - */ - protected function getDriver($url) - { - $alias = $url['scheme'] ?? null; - - if (! $alias) { - return; - } - - return static::$driverAliases[$alias] ?? $alias; - } - - /** - * Get the database name from the URL. - * - * @param array $url - * @return string|null - */ - protected function getDatabase($url) - { - $path = $url['path'] ?? null; - - return $path ? substr($path, 1) : null; - } - - /** - * Get all of the additional database options from the query string. - * - * @param array $url - * @return array - */ - protected function getQueryOptions($url) - { - $queryString = $url['query'] ?? null; - - if (! $queryString) { - return []; - } - - $query = []; - - parse_str($queryString, $query); - - return $this->parseStringsToNativeTypes($query); - } - - /** - * Parse the string URL to an array of components. - * - * @param string $url - * @return array - */ - protected function parseUrl($url) - { - $url = preg_replace('#^(sqlite3?):///#', '$1://null/', $url); - - $parsedUrl = parse_url($url); - - if ($parsedUrl === false) { - throw new InvalidArgumentException('The database configuration URL is malformed.'); - } - - return $this->parseStringsToNativeTypes( - array_map('rawurldecode', $parsedUrl) - ); - } - - /** - * Convert string casted values to their native types. - * - * @param mixed $value - * @return mixed - */ - protected function parseStringsToNativeTypes($value) - { - if (is_array($value)) { - return array_map([$this, 'parseStringsToNativeTypes'], $value); - } - - if (! is_string($value)) { - return $value; - } - - $parsedValue = json_decode($value, true); - - if (json_last_error() === JSON_ERROR_NONE) { - return $parsedValue; - } - - return $value; - } - - /** - * Get all of the current drivers aliases. - * - * @return array - */ - public static function getDriverAliases() - { - return static::$driverAliases; - } - - /** - * Add the given driver alias to the driver aliases array. - * - * @param string $alias - * @param string $driver - * @return void - */ - public static function addDriverAlias($alias, $driver) - { - static::$driverAliases[$alias] = $driver; - } -} From 5a16778f1088d2f4ed196b8f77d2af635383e999 Mon Sep 17 00:00:00 2001 From: Mathieu TUDISCO Date: Sat, 25 May 2019 22:12:58 +0200 Subject: [PATCH 2/3] Add UrlParser to Support. --- DatabaseManager.php | 1 + 1 file changed, 1 insertion(+) diff --git a/DatabaseManager.php b/DatabaseManager.php index 05d8cf0d4..d40f27f40 100755 --- a/DatabaseManager.php +++ b/DatabaseManager.php @@ -4,6 +4,7 @@ use PDO; use Illuminate\Support\Arr; +use Illuminate\Support\ConfigurationUrlParser; use Illuminate\Support\Str; use InvalidArgumentException; use Illuminate\Database\Connectors\ConnectionFactory; From 9fa75f38277d9b5dbbcf85b9e5485595d38c8180 Mon Sep 17 00:00:00 2001 From: Mathieu TUDISCO Date: Sat, 25 May 2019 22:40:42 +0200 Subject: [PATCH 3/3] StyleCI. --- DatabaseManager.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DatabaseManager.php b/DatabaseManager.php index d40f27f40..a5993066e 100755 --- a/DatabaseManager.php +++ b/DatabaseManager.php @@ -4,9 +4,9 @@ use PDO; use Illuminate\Support\Arr; -use Illuminate\Support\ConfigurationUrlParser; use Illuminate\Support\Str; use InvalidArgumentException; +use Illuminate\Support\ConfigurationUrlParser; use Illuminate\Database\Connectors\ConnectionFactory; /**