summaryrefslogtreecommitdiff
path: root/vendor/illuminate/support
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/illuminate/support')
-rwxr-xr-xvendor/illuminate/support/Arr.php10
-rw-r--r--vendor/illuminate/support/ConfigurationUrlParser.php189
-rwxr-xr-xvendor/illuminate/support/Facades/Response.php2
-rwxr-xr-xvendor/illuminate/support/Facades/URL.php6
-rw-r--r--vendor/illuminate/support/Testing/Fakes/BusFake.php2
-rw-r--r--vendor/illuminate/support/Testing/Fakes/MailFake.php2
6 files changed, 203 insertions, 8 deletions
diff --git a/vendor/illuminate/support/Arr.php b/vendor/illuminate/support/Arr.php
index 0f0b6fcf8e..31824b60c9 100755
--- a/vendor/illuminate/support/Arr.php
+++ b/vendor/illuminate/support/Arr.php
@@ -213,10 +213,14 @@ class Arr
if (! is_array($item)) {
$result[] = $item;
- } elseif ($depth === 1) {
- $result = array_merge($result, array_values($item));
} else {
- $result = array_merge($result, static::flatten($item, $depth - 1));
+ $values = $depth === 1
+ ? array_values($item)
+ : static::flatten($item, $depth - 1);
+
+ foreach ($values as $value) {
+ $result[] = $value;
+ }
}
}
diff --git a/vendor/illuminate/support/ConfigurationUrlParser.php b/vendor/illuminate/support/ConfigurationUrlParser.php
new file mode 100644
index 0000000000..308ff8f890
--- /dev/null
+++ b/vendor/illuminate/support/ConfigurationUrlParser.php
@@ -0,0 +1,189 @@
+<?php
+
+namespace Illuminate\Support;
+
+use InvalidArgumentException;
+
+class ConfigurationUrlParser
+{
+ /**
+ * The drivers aliases map.
+ *
+ * @var array
+ */
+ protected static $driverAliases = [
+ 'mssql' => '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;
+ }
+}
diff --git a/vendor/illuminate/support/Facades/Response.php b/vendor/illuminate/support/Facades/Response.php
index 11161c2737..ab8576b18b 100755
--- a/vendor/illuminate/support/Facades/Response.php
+++ b/vendor/illuminate/support/Facades/Response.php
@@ -6,12 +6,14 @@ use Illuminate\Contracts\Routing\ResponseFactory as ResponseFactoryContract;
/**
* @method static \Illuminate\Http\Response make(string $content = '', int $status = 200, array $headers = [])
+ * @method static \Illuminate\Http\Response noContent($status = 204, array $headers = [])
* @method static \Illuminate\Http\Response view(string $view, array $data = [], int $status = 200, array $headers = [])
* @method static \Illuminate\Http\JsonResponse json(string|array $data = [], int $status = 200, array $headers = [], int $options = 0)
* @method static \Illuminate\Http\JsonResponse jsonp(string $callback, string|array $data = [], int $status = 200, array $headers = [], int $options = 0)
* @method static \Symfony\Component\HttpFoundation\StreamedResponse stream(\Closure $callback, int $status = 200, array $headers = [])
* @method static \Symfony\Component\HttpFoundation\StreamedResponse streamDownload(\Closure $callback, string|null $name = null, array $headers = [], string|null $disposition = 'attachment')
* @method static \Symfony\Component\HttpFoundation\BinaryFileResponse download(\SplFileInfo|string $file, string|null $name = null, array $headers = [], string|null $disposition = 'attachment')
+ * @method static \Symfony\Component\HttpFoundation\BinaryFileResponse file($file, array $headers = [])
* @method static \Illuminate\Http\RedirectResponse redirectTo(string $path, int $status = 302, array $headers = [], bool|null $secure = null)
* @method static \Illuminate\Http\RedirectResponse redirectToRoute(string $route, array $parameters = [], int $status = 302, array $headers = [])
* @method static \Illuminate\Http\RedirectResponse redirectToAction(string $action, array $parameters = [], int $status = 302, array $headers = [])
diff --git a/vendor/illuminate/support/Facades/URL.php b/vendor/illuminate/support/Facades/URL.php
index 2dd66e7d79..baa2356966 100755
--- a/vendor/illuminate/support/Facades/URL.php
+++ b/vendor/illuminate/support/Facades/URL.php
@@ -12,9 +12,9 @@ namespace Illuminate\Support\Facades;
* @method static string route(string $name, $parameters = [], bool $absolute = true)
* @method static string action(string $action, $parameters = [], bool $absolute = true)
* @method static \Illuminate\Contracts\Routing\UrlGenerator setRootControllerNamespace(string $rootNamespace)
- * @method static string signedRoute(string $name, array $parameters = [], \DateTimeInterface|\DateInterval|int $expiration = null)
- * @method static string temporarySignedRoute(string $name, \DateTimeInterface|\DateInterval|int $expiration, array $parameters = [])
- * @method static string hasValidSignature(\Illuminate\Http\Request $request, bool $absolute)
+ * @method static string signedRoute(string $name, array $parameters = [], \DateTimeInterface|\DateInterval|int $expiration = null, bool $absolute = true)
+ * @method static string temporarySignedRoute(string $name, \DateTimeInterface|\DateInterval|int $expiration, array $parameters = [], bool $absolute = true)
+ * @method static string hasValidSignature(\Illuminate\Http\Request $request, bool $absolute = true)
* @method static void defaults(array $defaults)
*
* @see \Illuminate\Routing\UrlGenerator
diff --git a/vendor/illuminate/support/Testing/Fakes/BusFake.php b/vendor/illuminate/support/Testing/Fakes/BusFake.php
index b42491e4c0..4cd6deb26e 100644
--- a/vendor/illuminate/support/Testing/Fakes/BusFake.php
+++ b/vendor/illuminate/support/Testing/Fakes/BusFake.php
@@ -127,7 +127,7 @@ class BusFake implements Dispatcher
*/
public function pipeThrough(array $pipes)
{
- //
+ return $this;
}
/**
diff --git a/vendor/illuminate/support/Testing/Fakes/MailFake.php b/vendor/illuminate/support/Testing/Fakes/MailFake.php
index e0a886f01e..b93c0d2460 100644
--- a/vendor/illuminate/support/Testing/Fakes/MailFake.php
+++ b/vendor/illuminate/support/Testing/Fakes/MailFake.php
@@ -331,6 +331,6 @@ class MailFake implements Mailer, MailQueue
*/
public function failures()
{
- //
+ return [];
}
}