Laravel 不同生产环境服务器的判断实践


Posted in PHP onOctober 15, 2019

项目的前期为了开发速度会使用单一应用,就是一个 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();
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
第1次亲密接触PHP5(2)
Oct 09 PHP
检测png图片是否完整的php代码
Sep 06 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
Feb 04 PHP
php递归方法实现无限分类实例代码
Feb 28 PHP
PHP常用的缓存技术汇总
May 05 PHP
php中实现可以返回多个值的函数实例
Mar 21 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
Dec 22 PHP
Yii2 rbac权限控制操作步骤实例教程
Apr 29 PHP
PHP中的多种加密技术及代码示例解析
Oct 20 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
Jul 20 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
Apr 09 PHP
Jsonp劫持学习
Apr 01 PHP
laravel自定义分页的实现案例offset()和limit()
Oct 15 #PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
Oct 15 #PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
Oct 15 #PHP
Laravel实现搜索的时候分页并携带参数
Oct 15 #PHP
在Laravel中实现使用AJAX动态刷新部分页面
Oct 15 #PHP
Yii框架的redis命令使用方法简单示例
Oct 15 #PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
Oct 15 #PHP
You might like
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
php中引用&的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
2019/07/06 PHP
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
js轮播图代码分享
2016/07/14 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
TypeScript高级用法的知识点汇总
2019/12/17 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
python中管道用法入门实例
2015/06/04 Python
利用Python开发实现简单的记事本
2016/11/15 Python
Python编程之序列操作实例详解
2017/07/22 Python
python3.5绘制随机漫步图
2018/08/27 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
python3.x中安装web.py步骤方法
2020/06/23 Python
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
我的珠宝盒:Ma boîte à bijoux
2019/08/27 全球购物
请介绍一下WSDL的文档结构
2013/03/17 面试题
大三学生入党思想汇报
2014/01/02 职场文书
班主任工作年限证明
2014/01/12 职场文书
水电工岗位职责
2014/02/12 职场文书
会计岗位职责模板
2014/03/12 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
自强之星事迹材料
2014/05/12 职场文书
工会主席事迹材料
2014/06/03 职场文书
党的群众路线教育实践活动对照检查材料
2014/09/22 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
长城的导游词
2015/01/30 职场文书
零基础学java之循环语句的使用
2022/04/10 Java/Android