mirror of
https://github.com/laravel/valet.git
synced 2026-02-07 09:10:03 +01:00
Extract basic driver with public/ from basic driver, and simplify both
This commit is contained in:
@@ -27,11 +27,7 @@ public function serves($sitePath, $siteName, $uri)
|
||||
*/
|
||||
public function isStaticFile($sitePath, $siteName, $uri)
|
||||
{
|
||||
if (file_exists($staticFilePath = $sitePath.'/public'.rtrim($uri, '/').'/index.html')) {
|
||||
return $staticFilePath;
|
||||
} elseif (file_exists($staticFilePath = $sitePath.'/public'.rtrim($uri, '/').'/index.php')) {
|
||||
return $staticFilePath;
|
||||
} elseif (file_exists($staticFilePath = $sitePath.'/public'.$uri)) {
|
||||
if (file_exists($staticFilePath = $sitePath.rtrim($uri, '/').'/index.html')) {
|
||||
return $staticFilePath;
|
||||
} elseif ($this->isActualFile($staticFilePath = $sitePath.$uri)) {
|
||||
return $staticFilePath;
|
||||
@@ -54,13 +50,16 @@ public function frontControllerPath($sitePath, $siteName, $uri)
|
||||
$_SERVER['SERVER_ADDR'] = '127.0.0.1';
|
||||
$_SERVER['SERVER_NAME'] = $_SERVER['HTTP_HOST'];
|
||||
|
||||
$dynamicCandidates = [
|
||||
$this->asActualFile($sitePath, $uri),
|
||||
$this->asPhpIndexFileInDirectory($sitePath, $uri),
|
||||
$this->asHtmlIndexFileInDirectory($sitePath, $uri),
|
||||
$uri = rtrim($uri, '/');
|
||||
|
||||
$candidates = [
|
||||
$sitePath.$uri,
|
||||
$sitePath.$uri.'/index.php',
|
||||
$sitePath.'/index.php',
|
||||
$sitePath.'/index.html',
|
||||
];
|
||||
|
||||
foreach ($dynamicCandidates as $candidate) {
|
||||
foreach ($candidates as $candidate) {
|
||||
if ($this->isActualFile($candidate)) {
|
||||
$_SERVER['SCRIPT_FILENAME'] = $candidate;
|
||||
$_SERVER['SCRIPT_NAME'] = str_replace($sitePath, '', $candidate);
|
||||
@@ -69,90 +68,5 @@ public function frontControllerPath($sitePath, $siteName, $uri)
|
||||
return $candidate;
|
||||
}
|
||||
}
|
||||
|
||||
$fixedCandidatesAndDocroots = [
|
||||
$this->asRootPhpIndexFile($sitePath) => $sitePath,
|
||||
$this->asPublicPhpIndexFile($sitePath) => $sitePath.'/public',
|
||||
$this->asPublicHtmlIndexFile($sitePath) => $sitePath.'/public',
|
||||
];
|
||||
|
||||
foreach ($fixedCandidatesAndDocroots as $candidate => $docroot) {
|
||||
if ($this->isActualFile($candidate)) {
|
||||
$_SERVER['SCRIPT_FILENAME'] = $candidate;
|
||||
$_SERVER['SCRIPT_NAME'] = '/index.php';
|
||||
$_SERVER['DOCUMENT_ROOT'] = $docroot;
|
||||
|
||||
return $candidate;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Concatenate the site path and URI as a single file name.
|
||||
*
|
||||
* @param string $sitePath
|
||||
* @param string $uri
|
||||
* @return string
|
||||
*/
|
||||
protected function asActualFile($sitePath, $uri)
|
||||
{
|
||||
return $sitePath.$uri;
|
||||
}
|
||||
|
||||
/**
|
||||
* Format the site path and URI with a trailing "index.php".
|
||||
*
|
||||
* @param string $sitePath
|
||||
* @param string $uri
|
||||
* @return string
|
||||
*/
|
||||
protected function asPhpIndexFileInDirectory($sitePath, $uri)
|
||||
{
|
||||
return $sitePath.rtrim($uri, '/').'/index.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Format the site path and URI with a trailing "index.html".
|
||||
*
|
||||
* @param string $sitePath
|
||||
* @param string $uri
|
||||
* @return string
|
||||
*/
|
||||
protected function asHtmlIndexFileInDirectory($sitePath, $uri)
|
||||
{
|
||||
return $sitePath.rtrim($uri, '/').'/index.html';
|
||||
}
|
||||
|
||||
/**
|
||||
* Format the incoming site path as root "index.php" file path.
|
||||
*
|
||||
* @param string $sitePath
|
||||
* @return string
|
||||
*/
|
||||
protected function asRootPhpIndexFile($sitePath)
|
||||
{
|
||||
return $sitePath.'/index.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Format the incoming site path as a "public/index.php" file path.
|
||||
*
|
||||
* @param string $sitePath
|
||||
* @return string
|
||||
*/
|
||||
protected function asPublicPhpIndexFile($sitePath)
|
||||
{
|
||||
return $sitePath.'/public/index.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Format the incoming site path as a "public/index.php" file path.
|
||||
*
|
||||
* @param string $sitePath
|
||||
* @return string
|
||||
*/
|
||||
protected function asPublicHtmlIndexFile($sitePath)
|
||||
{
|
||||
return $sitePath.'/public/index.html';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user