在FT里开发后台管理模块

《我是程序媛》系列:在FT里开发后台管理模块教程一

FT是什么?

是我司内部基于yii2框架,H+主题开发的后台管理框架;

FT提供了什么?

  • 登录
  • 权限
  • UI
  • Log

FT和其他系统的关系?

  • FT是框架,你是模块
  • 通过composer安装模块

开发一个模块你需要做什么功能?

  • 权限配置install,update
  • 配置菜单;
  • 开发;

多人协作开发一个模块(拿活动举例)

先说开发,调试

if(没有release包)
{
  安装开发包;
  git信息;
} else {
  if(参数--prefer-source)
  {
      安装最新版本包;
      git信息;
  } else {
     参数 --prefer-dist:
     安装最新版本包;
     无git信息;
  }
}

这时候你就可以开始你的开发了,但是当别人git pull FT项目的代码时,又看不到你安装的包;
如果这个包需要多人协作时,问题就来了。

tips:记住这个场景哦,“多人协作开发包”;
毕竟,我们是不建议安装dev-master的,我们希望大多数情况还是通过包依赖来解决。

多人协作方式

第一种方式:直接git clone

缺点:需要进入文件夹提交更新;
优点:简单啊,还不够么;

第二种方式:git submodules

第三种方式:git subtree (>v1.8.0.0)

git Subtree 的使用场景

  1. 替代git submodule命令,合并子仓库到项目中并存放在子目录;
  2. 当多个项目共用同一部分代码,而这些代码跟着项目在快速更新的时候;
  3. 把一部分代码迁移出去独立为一个新的 git 仓库,但又希望能够保留这部分代码的历史提交记录。
git subtree用法
  • 第一次添加子目录,建立与git项目的关联。

语法:git remote add -f <子仓库名> <子仓库地址>
解释:其中-f意思是在添加远程仓库之后,立即执行fetch。

语法:git subtree add --prefix=<子目录名> <子仓库名> <分支> --squash
解释:–squash意思是把subtree的改动合并成一次commit,这样就不用拉取子项目完整的历史记录。–prefix之后的=等号也可以用空格。

$git remote add -f  cms-admin git@code.ziroom.com:web/php-yii2-cms-admin.git
$git subtree add --prefix=vendor/web/php-yii2-cms-admin cms-admin master --squash
  • 从远程仓库更新子目录

语法:git fetch <远程仓库名> <分支>

语法:git subtree pull --prefix=<子目录名> <远程分支> <分支> --squash

$git fetch cms-admin master  
$git subtree pull --prefix=vendor/web/php-yii2-cms-admin cms-admin --squash
  • 从子目录push到远程仓库

语法:git subtree push --prefix=<子目录名> <远程分支名> 分支

$git fetch cms-admin master  
$git subtree push --prefix=vendor/web/php-yii2-cms-admin cms-admin master

可能遇到的问题

  • prefix ************** already exists.
    这是因为对应的目录已经存在,不能直接添加,需要按下面的方式把对应的目录剥离开然后再加入subtree。需要用的时候再单聊;

来看一个唐总开发好的模块.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容