public function frontControllerPath($sitePath, $siteName, $uri)
{
$dynamicCandidates = [$this->asActualFile($sitePath, $uri), $this->asPhpIndexFileInDirectory($sitePath, $uri), $this->asHtmlIndexFileInDirectory($sitePath, $uri)];
foreach ($dynamicCandidates as $candidate) {
if ($this->isActualFile($candidate)) {
$_SERVER['SCRIPT_FILENAME'] = $candidate;
$_SERVER['SCRIPT_NAME'] = str_replace($sitePath, '', $candidate);
$_SERVER['DOCUMENT_ROOT'] = $sitePath;
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;
}
}
}