Yii2 修改框架入口增加配置适应开发生产环境

简介: Yii2 修改框架入口增加配置适应开发生产环境

为什么

首先,每个框架要保证自己的易用性,不会搞得特别复杂。

然后,实际项目中,作为一个工程,我们要保证团队成员的项目配置傻瓜化。

因此可见,修改入口文件是有足够的必要性的。

操作

修改index.php

文件位置web/index.php,在前面增加如下内容

$config =  __DIR__ . '/../.env';
if(!isset($config)){
    return 'no config';
}
$configCount = parse_ini_file($config);
if(!isset($configCount['APP_ENV']) || !isset($configCount['APP_DEBUG'])){
    return 'no config';
}

增加配置模板.env.exp

在项目根目录增加文件.env.exp

APP_ENV=dev
APP_DEBUG=true

这里我们定义两项

APP_ENV - 环境 dev/prod

APP_DEBUG - 是否开启debug true/false

增加设置配置文件 set_env.php

$type = $argv['1'];
$appEnv = 'dev';
if($type == 1){
    $appEnv = 'dev';
}
if($type == 2){
    $appEnv = 'pre_prod';
}
if($type == 3){
    $appEnv = 'prod';
}
$appDebug = 'true';
if($argv['2'] == 0){
    $appDebug = 'false';
}
$str = "APP_ENV=$appEnv\nAPP_DEBUG=$appDebug";
file_put_contents(".env",$str);

做这个文件的目的是当我们使用项目部署平台的时候,只要执行脚本中增加php set_env.php 1 1就可以了。

修改文件web.php

修改读取配置文件config/web.php,在前面增加如下

$params = require __DIR__ . '/'. YII_ENV.'_params.php';
$db = require __DIR__ . '/'. YII_ENV.'_db.php';
$db2 = require __DIR__ . '/'. YII_ENV.'_db2.php';

读取配置对应的配置文件,这里我读了两个数据库,如果你有多个可以增加更多。

增加配置文件

我们增加对应环境下的各自的配置文件,如图

修改git忽略配置文件.gitgnore

项目的.env文件是命令执行生成的,所以这个文件不能放在代码仓库中。

.env

总结

这样一套操作下来,我们可以在项目中配置不同环境的配置,一劳永逸。

相关文章
|
5月前
|
前端开发
SSM整合-前后台协议联调(列表功能、添加功能、添加功能状态处理、修改功能、删除功能)
SSM整合-前后台协议联调(列表功能、添加功能、添加功能状态处理、修改功能、删除功能)
35 0
|
22天前
|
前端开发 安全 开发工具
前端场景的代码部署方式都有那些?
【4月更文挑战第17天】本文分析了四种常见的前端代码部署方式:FTP/SFTP、Git、Docker和云服务平台部署。FTP/SFTP简单易用但效率低;Git提供版本控制,适合自动化部署,但有学习成本;Docker确保环境一致性,高效扩展,但较复杂;云服务平台弹性伸缩,高可用,但可能产生依赖和成本。选择部署方式应综合考虑项目需求、技术能力和成本。
22 0
|
11月前
|
存储 JSON 运维
【Go】基于 Gin 从0到1搭建 Web 管理后台系统后端服务(一)项目初始化、配置和日志(下)
【Go】基于 Gin 从0到1搭建 Web 管理后台系统后端服务(一)项目初始化、配置和日志(下)
|
11月前
|
存储 JSON 监控
【Go】基于 Gin 从0到1搭建 Web 管理后台系统后端服务(一)项目初始化、配置和日志(上)
【Go】基于 Gin 从0到1搭建 Web 管理后台系统后端服务(一)项目初始化、配置和日志(上)
|
11月前
|
JavaScript 开发者
Vite 在运行过程中是如何发现新增依赖的?
Vite 在运行过程中是如何发现新增依赖的?
182 0
|
XML 缓存 NoSQL
分布式服务器框架之Server.Common中通过Xml配置渠道、服务器集群、热更新信息代码解析Xml缓存进内存
ChannelConfig.cs代码解析加载ChannelConfig.xml。使用了System.Xml.Linq的XDocument工具类来加载xml文件。其基本原理就是获取到Root节点下名为“Channel”的所有Element节点,然后使用迭代器循环,拿到每一个Element中的属性,先缓存ChannelEntity结构中,最后存到字典里。
|
存储 安全 PHP
【Laravel】在企业级项目中使用Laravel框架中的工厂状态下的页面方法 Code Verifier以及错误处理
【Laravel】在企业级项目中使用Laravel框架中的工厂状态下的页面方法 Code Verifier以及错误处理
102 0
【Laravel】在企业级项目中使用Laravel框架中的工厂状态下的页面方法 Code Verifier以及错误处理
|
NoSQL 关系型数据库 MySQL
|
NoSQL 测试技术 Redis
|
PHP
【laravel】@21 访问流程
【laravel】@21 访问流程
75 0