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 相关文章推荐
用ADODB来让PHP操作ACCESS数据库的方法
Dec 31 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 PHP
Yii实现多按钮保存与提交的方法
Dec 03 PHP
Laravel5中contracts详解
Mar 02 PHP
PHP常用的三种设计模式汇总
Aug 28 PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 PHP
php preg_match的匹配不同国家语言实例
Dec 29 PHP
PHP中时间加减函数strtotime用法分析
Apr 26 PHP
Eclipse PHPEclipse 配置的具体步骤
Aug 08 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
Laravel实现搜索的时候分页并携带参数
Oct 15 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
Zend Framework基本页面布局分析
2016/03/19 PHP
PHP单例模式是什么 php实现单例模式的方法
2016/05/14 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
2017/04/27 Javascript
vue引入swiper插件的使用实例
2017/07/19 Javascript
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
浅谈function(函数)中的动态参数
2017/04/30 Python
python使用tomorrow实现多线程的例子
2019/07/20 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
澳洲最大的时尚奢侈品电商平台:Cettire
2020/06/15 全球购物
法学专业毕业生自荐信范文
2013/12/18 职场文书
旅游专业职业生涯规划范文
2014/01/13 职场文书
遗嘱继承公证书
2014/04/09 职场文书
初中生操行评语大全
2014/04/24 职场文书
学校清明节活动总结
2014/07/04 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
职代会闭幕词
2015/01/28 职场文书
本溪关门山导游词
2015/02/09 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL