在FT里开发后台管理模块

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

FT是什么?

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

FT提供了什么?

  • 登录
  • 权限
  • UI
  • Log

FT和其他系统的关系?

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

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

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

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

先说开发,调试

  • 建立代码库,命名规范 web/php-yii2-****-admin
  • 编写composer.json和src
  • 打包
  • 安装
    composer require "web/php-yii2-cms-admin",详见http://docs.phpcomposer.com/03-cli.html
if(没有release包)
{
  安装开发包;
  git信息;
} else {
  if(参数--prefer-source)
  {
      安装最新版本包;
      git信息;
  } else {
     参数 --prefer-dist:
     安装最新版本包;
     无git信息;
  }
}

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

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

多人协作方式

第一种方式:直接git clone

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

第二种方式:git submodules

  • 很多坑 http://mobile.51cto.com/aprogram-393324.htm

第三种方式: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 [email protected]: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。需要用的时候再单聊;

在FT里开发后台管理模块_第1张图片
来看一个唐总开发好的模块.png

你可能感兴趣的:(在FT里开发后台管理模块)