From 8971bf8d6a36fb9d1d3975ca2b8feb1dded885c8 Mon Sep 17 00:00:00 2001 From: Martin Peverelli Date: Mon, 24 Sep 2018 16:03:04 -0300 Subject: [PATCH] #473 Add feature to load server environment variables from special file --- cli/drivers/ValetDriver.php | 24 ++++++++++++++++++++++++ server.php | 7 +++++++ 2 files changed, 31 insertions(+) diff --git a/cli/drivers/ValetDriver.php b/cli/drivers/ValetDriver.php index aa76347..0ee023c 100644 --- a/cli/drivers/ValetDriver.php +++ b/cli/drivers/ValetDriver.php @@ -177,4 +177,28 @@ protected function isActualFile($path) { return ! is_dir($path) && file_exists($path); } + + /** + * Load server environment variables if available. + * + * @param string $sitePath + * @param string $siteName + * @return void + */ + public function loadServerEnvironmentVariables($sitePath, $siteName) + { + $varFilePath = $sitePath . '/.valet-env.php'; + if (! file_exists($varFilePath)) { + return; + } + + $variables = include $varFilePath; + if (! isset($variables[$siteName])) { + return; + } + + foreach ($variables[$siteName] as $key => $value) { + $_SERVER[$key] = $value; + } + } } diff --git a/server.php b/server.php index 9de3a02..bd80d3c 100644 --- a/server.php +++ b/server.php @@ -135,6 +135,13 @@ function valet_default_site_path($config) return $valetDriver->serveStaticFile($staticFilePath, $valetSitePath, $siteName, $uri); } +/** + * Attempt to load server environment variables. + */ +$valetDriver->loadServerEnvironmentVariables( + $valetSitePath, $siteName +); + /** * Attempt to dispatch to a front controller. */