For Mac
cd ~/
&& git clone https://gist.github.com/349112047c91ea8441256db4dc390b9c.git
&& cd 349112047c91ea8441256db4dc390b9c
&& mv Yii2ValetDriver.php ~/.config/valet/Drivers/
&& rm -rf ~/349112047c91ea8441256db4dc390b9c
&& cd ~/ && valet restart
<?php | |
class Yii2ValetDriver extends ValetDriver | |
{ | |
/** | |
* Determine if the driver serves the request. | |
* | |
* @param string $sitePath | |
* @param string $siteName | |
* @param string $uri | |
* @return bool | |
*/ | |
public function serves($sitePath, $siteName, $uri) | |
{ | |
if (file_exists($sitePath.'/vendor/yiisoft/yii2/Yii.php')) { | |
return true; | |
} | |
return false; | |
} | |
/** | |
* 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) | |
{ | |
if (file_exists($staticFilePath = $sitePath.'/web/'.$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) | |
{ | |
if (strpos($uri, '/admin.php') === 0) { | |
$_SERVER['SCRIPT_FILENAME'] = $sitePath.'/web/admin.php'; | |
$_SERVER['SCRIPT_NAME'] = '/admin.php'; | |
$_SERVER['PHP_SELF'] = '/admin.php'; | |
$_SERVER['DOCUMENT_ROOT'] = $sitePath; | |
return $sitePath.'/web/admin.php'; | |
} elseif(strpos($uri, '/api.php') === 0) { | |
$_SERVER['SCRIPT_FILENAME'] = $sitePath.'/web/api.php'; | |
$_SERVER['SCRIPT_NAME'] = '/api.php'; | |
$_SERVER['PHP_SELF'] = '/api.php'; | |
$_SERVER['DOCUMENT_ROOT'] = $sitePath; | |
return $sitePath.'/web/api.php'; | |
} | |
$_SERVER['SCRIPT_FILENAME'] = $sitePath.'/web/index.php'; | |
$_SERVER['SCRIPT_NAME'] = '/index.php'; | |
$_SERVER['PHP_SELF'] = '/index.php'; | |
$_SERVER['DOCUMENT_ROOT'] = $sitePath; | |
return $sitePath.'/web/index.php'; | |
} | |
} |