如果我正在浏览特定路径(domain.com/path1
),我想拥有一个不同的环境,这是否可以在Laravel 4中使用,如果可以,怎么做?我知道$app->detectEnvironment()
方法,但我不知道如何使用它。
答案 0 :(得分:1)
这可以使用$app->detectEnvironment()
方法(在/bootstrap/start.php
中),但不是发送数组而是使用闭包。
$env = $app->detectEnvironment(function(){
// get current http_host
$baseurl = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : null;
// our available environment
$envs = [
'foo' => ['foo.com', 'bar.foo.com'],
'kex' => ['kex.foo.com']
];
// default environment, you should not change this
$environment = 'production';
// search trough each available environment to see if it matched our http_host
foreach($envs as $key => $env) {
foreach ($env as $url) {
if ($url == $baseurl) {
$environment = $key;
// match found, lets break our loop
break 2;
}
}
}
// we create segments of /our/path so we can check if it matches your condition
$segments = explode('/', isset($_SERVER['REQUEST_URI']) ? trim($_SERVER['REQUEST_URI']) : null);
// check if the first (second) segment matches our /path
if (isset($segments[1]) && $segments[1] == 'path')
return $environment . '-route'; // append -route to our environment and return it
return $environment;
});
第2行到第24行模仿Laravel的默认方法(使用数组)。你在下面的那个。