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前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。