Laravel 不同生产环境服务器的判断实践
发布:smiling 来源: PHP粉丝网 添加日期:2022-01-05 11:04:53 浏览: 评论:0
项目的前期为了开发速度会使用单一应用,就是一个 Laravel 框架实现 API 和后台接口。
用户体量上来后,一台服务器不够了,项目就采用了 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("production.api");
- # 判断在 ADMIN 环境
- app()->environment("production.admin");
- # 判断在所有环境
- app()->environment("production.*");
修改 RouteServiceProvider 文件
- /**
- * Define the routes for the application.
- */
- public function map()
- {
- // 公共路由
- if (app()->environment('production.api')) {
- # production api 路由
- $this->mapApiRoutes();
- } elseif (app()->environment('production.admin')) {
- # production admin 路由
- $this->mapAdminRoutes();
- } else {
- # local testing stanging 环境下加载所有路由
- $this->mapApiRoutes();
- $this->mapAdminRoutes();
- }
- }
Tags: Laravel生产环境
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)