laravel后台可修改配置自动加载
Jun 20, 2016 pm 12:33 PM
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方法就可以及时访问到我们修改的配置了。

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Laravel Back End : Part 2, React가있는 React 앱 구축

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법
