Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- * Magento 1 Valet Driver
- * @author spinsch
- * @path ~/.valet/Drivers/Magento1ValetDriver.php
- */
- class Magento1ValetDriver extends ValetDriver
- {
- private $siteSubFolder = 'htdocs';
- /**
- * Determine if the driver serves the request.
- *
- * @param string $sitePath
- * @param string $siteName
- * @param string $uri
- * @return bool
- */
- public function serves($sitePath, $siteName, $uri)
- {
- return file_exists($this->getFullSitePath($sitePath, '/js/mage/translate.js'));
- }
- /**
- * Determine if the incoming request is for a static file.
- *
- * @param string $sitePath
- * @param string $siteName
- * @param string $uri
- * @return string|false
- */
- public function isStaticFile($sitePath, $siteName, $uri)
- {
- $sitePath = $this->getFullSitePath($sitePath);
- if ($this->isActualFile($staticFilePath = $sitePath.$uri)) {
- return $staticFilePath;
- }
- return false;
- }
- /**
- * Get the fully resolved path to the application's front controller.
- *
- * @param string $sitePath
- * @param string $siteName
- * @param string $uri
- * @return string
- */
- public function frontControllerPath($sitePath, $siteName, $uri)
- {
- $sitePath = $this->getFullSitePath($sitePath);
- // api request
- if (substr($uri, 1, 8) == 'api/rest') {
- $_GET['type'] = 'rest';
- return $sitePath.'/api.php';
- }
- // default request
- $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;
- }
- }
- $candidate = $this->asRootPhpIndexFile($sitePath);
- if ($this->isActualFile($candidate)) {
- $_SERVER['SCRIPT_FILENAME'] = $candidate;
- $_SERVER['SCRIPT_NAME'] = '/index.php';
- $_SERVER['DOCUMENT_ROOT'] = $sitePath;
- 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';
- }
- /**
- * Get the full site path including sub folder.
- *
- * @param string $sitePath
- * @param string $uri
- * @return string
- */
- protected function getFullSitePath($sitePath, $path = null)
- {
- $fullPath = rtrim($sitePath, '/').'/'.$this->siteSubFolder;
- if ($path !== null) {
- $fullPath .= '/'.rtrim($path, '/');
- }
- return $fullPath;
- }
- }
Add Comment
Please, Sign In to add comment