2019独角兽企业重金招聘Python工程师标准>>>

1、laravel实现的生产环境跟开发环境配置分离

通常我们会把配置文件所需要的参数放在/config下面的目录中,这个文件夹下面的所有文件都会自动加载,我们使用config(文件名+”.”+配置项)的方式进行访问,但是直接修改config下面文件的配置会很麻烦,例如我们生产环境跟开发环境不同,这就比较麻烦了,可laravel很便捷的给我们解决了这个方法,我们开发环境在根目录配置.env文件,config里面的配置都通过读取.env的方式来实现配置的自由切换,好了,我们完成了一个比较方便的事情

2、如何实现一些比较固定参数的后台配置

我们日常开发系统一些不是经常会变的东西,比方说网站设置,邮箱配置,第三方登录配置。这些配置我们希望通过后台修改后我们的程序能够像读配置文件一样来读,省去了我们每初始化一套系统都得手动去修改参数配置(假设我们系统是一套一套的卖给他人的)。

这个时候中间件用上了,我们可以建立一个中间件,例如app/Http/Middleware/ResetConfig.php,然后把这个中间件放到app/Http/Kernel.php中的protected $middleware数组里面,我们就可以实现写入的配置文件读取到config中

ResetConfig.php

public function handle($request, Closure $next)
{$json_datas = $arr_datas = null;// email$file_path = storage_path('app/email.data');if(file_exists($file_path)) {$json_datas = file_get_contents($file_path);$json_datas && $arr_datas = json_decode($json_datas, true);$arr_datas && config(['mail' => array_merge(config('mail'), $arr_datas)]);}$json_datas = $arr_datas = null;// msg$file_path = storage_path('app/msg.data');if(file_exists($file_path)) {$json_datas = file_get_contents($file_path);$json_datas && $arr_datas = json_decode($json_datas, true);$arr_datas && config(['msg' => $arr_datas]);}return $next($request);
}

Kernel.php

protected $middleware = [\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,\App\Http\Middleware\ResetConfig::class,\App\Http\Middleware\Cors::class, //解决跨域
];

这样我们在开发程序的时候只用把文件写入到app/email.data中就可以实现了,我们的其他程序通过config方法就可以及时访问到我们修改的配置了。

转载于:https://my.oschina.net/u/1186749/blog/648227

laravel后台可修改配置自动加载相关推荐

  1. 监听文件修改,自动加载xml文件。

    转载文章,转载自,公司项目,董亚杰写的. 下面是完整的代码,复制的. package cn.digitalpublishing.util.debug;import java.io.File; impo ...

  2. .NET Core用数据库做配置中心加载Configuration

    本文介绍了一个在.NET中用数据库做配置中心服务器的方式,介绍了读取配置的开源自定义ConfigurationProvider,并且讲解了主要实现原理. 1. 为什么用数据库做配置中心 在开发youz ...

  3. springboot是如何实现配置文件自动加载的呢

    springboot提倡: 约定大于配置 springboot最常见的面试题: 1.springboot是如何实现自动加载配置呢? 2.如何写一个starter呢? 带着问题,我们以mybatis-s ...

  4. 大话PHP设计模式:类自动载入、PSR-0规范、链式操作、11种面向对象设计模式实现和使用、OOP的基本原则和自动加载配置...

    一.类自动载入 SPL函数 (standard php librarys) 类自动载入,尽管 __autoload() 函数也能自动加载类和接口,但更建议使用 spl_autoload_registe ...

  5. php zend 自动补全,Zend Framework自动加载、简单路由配置(Bootstrap.php)

    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { /* * 自动加载 */ protected function _init ...

  6. Laravel核心技术解析(1)—— Composer 组件管理与自动加载

    Composer作为PHP的组件化管理工具,实现了laravel框架的组件安装.更新.移除,以及自动加载功能,下面就深入解析这是如何实现的. 使用Composer安装组件,首先需要创建composer ...

  7. SpringBoot项目中自动加载datasourceConfig配置导致启动失败

    在自己学习搭建SpringBoot的项目中并没有使用到数据库,但在启动的时候报没有找到数据源,网上查了一下发现原因是SpringBoot项目启动时会自动加载datasourceConfig配置 经过尝 ...

  8. Tomcat 7 自动加载类及检测文件变动原理

    在一般的 web 应用开发里通常会使用开发工具(如 Eclipse.IntelJ )集成 tomcat ,这样可以将 web 工程项目直接发布到 tomcat 中,然后一键启动.经常遇到的一种情况是直 ...

  9. Nacos Spring Cloud 实现配置热加载

    0x01:安装 Nacos 下载安装包, https://github.com/alibaba/nacos/releases 从下载 nacos-server-$version.zip 安装包. 解压 ...

  10. 你不知道的composer自动加载

    2019独角兽企业重金招聘Python工程师标准>>> 我们都知道Composer是现代PHP框架(Yii2.Laravel...)的基石,有了Composer后我们开发是一件多么的 ...

最新文章

  1. C# 计时函数精度测试
  2. HtmlAgilityPack 之 HtmlNode类
  3. requests 返回的cookies为空_爬虫学习(2)(requests库)
  4. Kerberos 基本命令 - 持续更新
  5. (ssh整合web导出excel)在ssh框架中使用poi正确导出具有比较高级固定格式的excel 整体过程,查询导出前后台下载...
  6. java 创建restful_使用Java创建RESTful Web Service
  7. Android服务注册完整过程源码分析
  8. su室外渲染参数设置_vray3.4 for sketchup渲染器渲染出图参数怎么设置?
  9. triton部署yolov5笔记(四)
  10. android连接苹果蓝牙耳机,苹果蓝牙耳机怎么配对 苹果蓝牙耳机怎么配对安卓手机 苹果蓝牙耳机使用说明...
  11. 2021租房合同样板
  12. 2023秋招大厂经典面试题及答案整理归纳(101-120)校招必看
  13. Action大全和用法
  14. 更多python内容请移步
  15. 几种常见的脚本语言及其简介
  16. 基于javaweb的公寓房屋出租系统(java+ssm+jsp+easyui+echarts+mysql)
  17. 什么是IP地址 IP地址的工作原理
  18. Jumpserver安装和测试连接
  19. 按图索骥|到底网络空间安全、网络安全、信息安全之间有啥区别?
  20. Win10下的IIS的配置

热门文章

  1. 3.1 Hadoop架构
  2. Ubuntu-vim 命令
  3. Android Studio - xml布局文件不显示代码怎么办?
  4. 7-2 温度转换 (5 分)
  5. JavaWeb — session+实战项目
  6. L1-004 计算摄氏温度 (5 分)—团体程序设计天梯赛
  7. Vue2.0组织浏览器返回事件
  8. 锋利的jQuery-4--图片切换的一个例子(自己理解后写的,以备忘记时看看)
  9. HDOJ 1465 不容易系列之一
  10. STC单片机不需要按电源开关下载的方法!