Laravel 不同生产环境服务器的判断实践
时间:2022-07-27
本文章向大家介绍Laravel 不同生产环境服务器的判断实践,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
项目的前期为了开发速度会使用单一应用,就是一个 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();
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助。
- 稳扎稳打JavaScript(二)——图解对象内存模型
- Swift学习资源
- 稳扎稳打JavaScript(三)——创建对象的几种方式
- 快速教程:使用Cython来扩展Python/NumPy库
- 稳扎稳打JavaScript(四)——闭包
- JavaScript奇淫技巧(一)
- 动态规划法(四)——0/1背包问题
- 动态规划法(三)——最长公共子序列
- Python数据分析模块 | pandas做数据分析(三):统计相关函数
- 动态规划法(二)——弗洛伊德算法
- Python数据分析模块 | pandas做数据分析(二):常用预处理操作
- 贪心算法(一)——概述
- Python数据分析模块 | pandas做数据分析(一):基本数据对象
- 贪心算法(二)——一般背包问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 单细胞数据中到底应该如何处理线粒体基因
- Seurat小提琴图为什么有的只有点儿?
- Layui解决table日期的格式化问题
- Telegraf+Influxdb+Grafana 轻量级监控系统部署
- 国产开源文档管理系统——Wizard
- 力扣 1519——子树中标签相同的节点数
- PythonforResearch | 1_文件操作
- 你应该知道关于Python的这几个技巧!
- Pytest之fixture
- JAVA|Java的Scanner类初级使用
- systemd设置nginx开机自启动
- C盘爆满,如何移除软件~
- Microsoft PowerToys
- MagicEXIF(元数据编辑器)
- 9个 SSH常用命令选项