yii2教程:团队开发通过git仓库初始化本地项目和环境变量的用法
ccwgpt 2024-09-15 15:11 48 浏览 0 评论
因为公司的项目开始得早,公司用的是yii1的版本,我们团队是用git进行版本管理的,因为yii1几本是把所有的php代码都签入到git上的,所以,在团队有新人进来时,只要把git服务器上的代码克隆到本地就可以直接进行开发了,在初始化开发人员的本地项目时基本没碰到什么问题,当然,这里只说yii1对应的php项目代码,如果是完整的项目,还会包括前端项目的初始化,比如node.js(包括了npm)、grunt、vue等前端环境的搭建,这个已经超出php和yii范畴,就不深入了。
相对于yii1,yii2在框架的完整性上更加完善,甚至考虑到了团队协作开发和版本升级的一些细节。
今天我们就来说说,yii2的项目在团队开时,如果有新成员进入团队,通过git服务器,初始化本地开发环境的步骤。
这里先说一下我以前的一个经历,我个人是用yii2的,然后通过互联网的git云平台管理我的项目代码,通过git我可以在不同电脑间同步我的开发项目。
直到有一天,我在一台新电脑上执行codecept测试命令:
.\vendor\bin\codecept run -c api
既然出现了如下的错误(为了截图,我故意重现了当时的环境):
我很纳闷,为什么在另外一台电脑上执行这个命令是没问题的,这个codeception-local.php文件为什么在我这台电脑上没有存在,但是在另外一台电脑上却有这个文件,我需要搞清楚它是怎么来的。
我之前在不同机器上同步我的yii2项目时,用的是如下的步骤:
1 从git服务器上克隆代码到本地开发环境
2 执行composer install命令安装yii2项目和我在开发过程中引用的第三方组件
3 手动在web目录下建立index.php文件,在config目录下建立:main-local.php、params-local.php,在对应新建的文件上完善相应的代码,通常是不同开发环境的数据库服务器配置。
4 配置web服务器
用上面的步骤,就可以在新的电脑上同步我的开发项目了,我用这样的步骤一直没有问题,直到出现上面的错误,发才意识到,我应该是哪里做错了
回顾一下,上面的步骤,会发现第三步手动建立index.php、main-local.php等文件好像是一个很傻的动作,为什么要手动建立呢?而不是同步呢?
关于为什么需要手动建立index.php、main-local.php文件这里要说明一下,这是yii2框架进一步考虑到团队开发协作的需求,在团队开发的时候,开发人员可能因为开发过程的需要或者本地环境不同,需要修改本地的配置文件,在一般的情况下,配置文件会纳入git仓库进行版本管理的,这样,他在提交代码的时候,就会把修改过的、只适合他本地环境的开发配置参数随着配置文件提交到服务器上去了,别的开发人员在拉取代码时他本地的配置参数就会被覆盖,并且,这新的配置参数可能不是这个开发人员所需要的,会影响他的开发工作,严重情况下可能会误删数据(比如开发环境有多个开发数据库的情况下),这样给团队协作造成了麻烦。
yii2为了完善这个问题,用了多个配置文件,并且对配置文件进行了分级的方法来解决这个问题。
首先,在默认的情况下,yii2项目的git管理模板会忽略掉web目录下的index.php文件,config目录下的:main-local.php、params-local.php...等文件,只要是文件名里带有local的文件都会忽略掉。
然后,在项目里,yii2框架对配置文件进行了优先级区分,优先级顺序分别是: app\config\main-local.php > app\config\main.php > common\config\main-local.php > common\config\main.php,其中app代表某个yii2的项目,在不同的配置文件里,key名相同的配置项,会按优先级进行覆盖,就因为这个优先级覆盖加上local的配置文件不包含到git仓库中,让开发人员可以灵活、大胆的配置本地参数,按照自己具体的需求配置参数且不会覆盖别人的配置参数了。
说明了上面的规则,还是没有解决我纳闷的问题:那个codeception-local.php是怎么来的,在另外一台为什么有这个问题件?经过一番对比,我终于发现,我在从git仓库同步代码,初始化本地yii2开发项目时,少了一个步骤:执行yii2的init命令。
在查看了init命令的代码文件后在上面的初始化步骤里,第三步是很傻的,main-local.php等文件是不用手动建立的,在第三步,只要执行init命令,初始化本地的yii项目开发环境,就会自动建立main-local.php等本地文件了。
所以正确的步骤是:
1 从git服务器上克隆代码到本地开发环境
2 执行composer install命令安装yii2项目和我在开发过程中引用的第三方组件
3 在yii2项目的总根目录下,执行 init命令,记得,在提示里有提示要不要覆盖已存在的配置文件的,这时,记得选择:不覆盖:
从图上可以看出,codeception-local.php文件就是在这个步骤建立的,并且,红框里选择的是“不覆盖”
4 配置web服务器
这个时候,其实我们还另外一个发现:就是yii2项目高级模板里的environments项目到底是干嘛用的,其实我们执行init命令的时候,yii2框架是通过从environments目录里复制对应配置文件到具体项目的config文件里的,也就是说,我们可以在environments项目里配置我们统一的main-local.php配置文件,然后一样纳入git仓库,这样,在团队成员初始化项目开发环境时,就可以直接从environments项目里初始化,不用像我开始一样傻兮兮的自己手动建立了,这就是yii2项目环境变量的用途。
我们如果新增了一个yii2的项目,需要在environments项目中增加相应的配置文件,这样团队成员就可以通过纳入git仓库的environments项目同步到main-local.php等配置文件了。
相关推荐
- 用Deepseek扩写土木工程毕业论文实操指南
-
用Deepseek扩写毕业论文实操指南一、前期准备整理现有论文初稿/提纲列清楚论文核心框架(背景、现状、意义、方法、数据、结论等)梳理好关键文献,明确核心技术路线二、Deepseek扩写核心思路...
- 985学霸亲授,DeepSeek也能绘6大科研图表,5分钟就出图
-
在实验数据处理中,高效可视化是每个科研人的必修课。传统绘图软件操作复杂、耗时费力,而智能工具DeepSeek的出现彻底改变了这一现状。本文将详解如何用DeepSeek一键生成六大科研常用图表,从思维导...
- AI写论文刷屏?大学生正在丢掉的思考力
-
一、宿舍深夜:当论文变成"Ctrl+C+V"凌晨两点的大学宿舍,小王对着电脑屏幕叹气。本该三天前开始写的近代史论文,此刻还一片空白。他熟练打开某AI写作网站,输入"论五四运动的...
- Grok在辅助论文写作上能不能既“聪明”又“可怕”?!
-
AcademicIdeas-学境思源AI初稿写作随着人工智能技术的飞速发展,论文写作这一学术任务正迎来新的助力。2025年2月18日,美国xAI公司推出了备受瞩目的Grok3模型,其创始人埃隆·...
- 大四论文沟通场景!音频转文字难题听脑AI来化解
-
大四学生都知道,写论文时和导师沟通修改意见,简直是“过关斩将”。电话、语音沟通完,想把导师说的修改方向、重点要求记下来,麻烦事儿可不少。手写记不全,用普通录音转文字工具,转完还得自己慢慢找重点,稍不注...
- 论文写作 | 技术路线图怎么画?(提供经典优秀模板参考)
-
技术路线图是一种图表或文字说明,用于描述研究目标、方法和实施计划。它展示了研究的整体框架和步骤,有助于读者理解研究的逻辑和进展。在课题及论文中,技术路线图是常见的一部分,甚至是一个类似心脏一样的中枢器...
- 25年信息系统项目管理师考试第2批论文题目写作建议思路框架
-
25年信息系统项目管理师考试第2批论文题目写作建议思路框架--马军老师
- 微信购物应尽快纳入法律框架(微信购物管辖)
-
符向军近日,甘肃省工商行政管理局发布《2016年上半年信息分析报告》。报告显示,微信网购纠纷迅猛增长,网络购物投诉呈上升趋势。投诉的主要问题有出售的商品质量不过关、消费者通过微信付款后对方不发货、购买...
- 泛珠三角区域网络媒体与腾讯微信签署《战略合作框架协议》
-
新海南客户端、南海网7月14日消息(记者任桐)7月14日上午,参加第四届泛珠三角区域合作网络媒体论坛的区域网络媒体负责人及嘉宾一行到腾讯微信总部座谈交流,并签署《战略合作框架协议》(以下简称《框架协...
- 离线使用、植入微信-看乐心Mambo手环如何打破框架
-
从2014年开始智能手环就成功进入人们的生活,至今已经演变出数据监测、信息推送、心率监测等诸多五花八门的功能,人们选择智能手环并不指望其能够改变身体健康情况,更多的是通过数据来正视自身运动情况和身体健...
- 华专网络:如何零基础制作一个网站出来?
-
#如何零基础制作一个网站出来?#你是不是觉得网站建设很复杂,觉得自己是小白,需求不明确、流程搞不懂、怕被外包公司坑……这些问题我都懂!今天华专网络就用大白话给你捋清楚建站的全流程,让你轻松get网站制...
- WAIC2024丨明日上午9点,不见不散!共同探讨智能社会与全球治理框架
-
大咖云集,硕果闪耀WAIC2024世界人工智能大会智能社会论坛将于7月5日9:00-12:00与你相约直播间WAIC2024上海杨浦同济大学哔哩哔哩多平台同步直播探讨智能社会与全球治理框架WAIC...
- 约基奇:森林狼换来戈贝尔时大家都在嘲笑 他们的阵容框架很不错
-
直播吧5月4日讯西部季后赛半决赛,掘金将迎战森林狼,约基奇赛前接受采访。约基奇说道:“当蒂姆-康纳利(森林狼总经理、前掘金总经理&曾选中约基奇)做了那笔交易(换来戈贝尔)时,每个人都在嘲笑他...
- 视频号带货为什么一个流量都没有?顶级分析框架送给你
-
视频号带货为什么一个流量都没有?遇到问题,一定是步步来分析内容,视频号带货一个流量都没有,用另外一个意思来讲,就可以说是零播放。为什么视频号带货一个流量都没有?跟你说再多,都不如来个分析框架。1、是否...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)