Laravel在不同生产环境服务器上的判断实践
项目前期会为了开发速度而采用单一应用,就是实现API和后端接口的Laravel框架。
用户数量增加后,一台服务器已经不够用了,所以项目采用了API和后端接口,放在不同的服务器上。
我发现增加行程次数会影响性能。这时候就需要区分不同的服务器来加载不同的路由。
如何区分不同的服务器和环境,还要区分生产环境。
代码实现
可以使用app()->environment()来实现; 方法,生产环境和测试环境的区别。
看了代码,发现有多种方法可以用。函数
/**
* 获取或检查当前应用程序环境。
*
* @return string|bool
*/
public function environment()
{
// 返回传递给函数的参数数量
if (func_num_args() > 0) {
// 如果第一个参数是数组就去第一个,不是的话取全部的。
$patterns = is_array(func_get_arg(0)) ? func_get_arg(0) : func_get_args();
return Str::is($patterns, $this['env']);
}
return $this['env'];
}
Str::is 确定给定字符串是否与给定模式匹配。星号 * 可用作通配符:
# 判断在 API 环境
app()->environment("");
# 判断在 ADMIN 环境
app()->environment("");
# 判断在所有环境
app()->environment("production.*");
Edit RouteServiceProvider File
/**
* Define the routes for the application.
*/
public function map()
{
// 公共路由
if (app()->environment('')) {
# production api 路由
$this->mapApiRoutes();
} elseif (app()->environment('')) {
# production admin 路由
$this->mapAdminRoutes();
} else {
# local testing stanging 环境下加载所有路由
$this->mapApiRoutes();
$this->mapAdminRoutes();
}
} 版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网