开发指南

开发框架

Masterlab使用Hornet-framework框架进行开发的,Hornet-framework是一个高性能,轻量级,易于上手,功能完备的PHP LMVC 开发框架。 LMVC分别是 Logic逻辑 Model模型 View视图 Ctrl控制器,与传统的MVC框架比多一层Logic层,目的是解决在复杂的应用系统时, 逻辑代码混杂于Model或Ctrl之间的问题。

要求

Masterlab 当前主要使用 PHP 和 JQuery 以及Mysql技术进行开发,为提高PHP的执行性能性能,开发使用PHP7.0以上的版本,依赖类库使用Composer进行组织, 数据库使用Mysql5.7及以上版本以支持中文全文索引,为减少数据库查询使用Redis作为数据缓存。

git v2.1 +
php v7.1 +
phpunit v7.0+
composer v1.6.0 +
Mysql v5.7 +
Redis v3.0 +

配置开发环境

通过git获取源代码

mkdir /c/www/
cd /c/www/
git clone git@github.com:gopeak/hornet-framework.git
git clone git@github.com:gopeak/masterlab.git
cd masterlab
git checkout -b dev
git pull origin dev
composer update

安装 Masterlab 参考文档 http://www.masterlab.vip/help.php?md=env

Masterlab的目录结构说明


hornet-framework        开发框架
masterlab
|--  vendor             为composer的第三方类库
|--  lib                为非vendor的第三方类库
|--  app 为项目实现代码
      |--   app/classes  为逻辑实现类
      |--   app/config   为配置文件目录,有部署 开发不同的配置可切换
      |--   app/ctrl     控制器目录,用于编写流程控制
      |--   app/function 为函数存放目录
      |--   app/model    为模型类,主要用于数据库 缓存 IO 等交互
      |--   app/public   为网站访问到目录,入口文件在此,可存放静态文件
      |--   app/api      为api接口的控制器类
      |--   app/storage  为存储目录,可存放临时文件 上传文件 大数据等
      |--   app/test     测试相关目录,使用PHPUNIT进行单元测试和自动化测试
      |--   app/view     视图层
      |--   app/server   异步,队列,定时执行的服务代码

插件开发

目前Masterlab尚未支持插件功能,因为如果要进行二次开发,只能在当前的代码直接修改

PHP代码说明

  • PHP代码遵循psr2标准,使用驼峰命名规范
  • 更多的开发说明,请参考 Hornet-framework 的开发指南 https://github.com/gopeak/hornet-framework/wiki
  • 项目中大部分使用了前后端分离,以ajax异步调用的方式获取和显示数据。
  • 部分页面的内容仍然使用php代码直接输出和控制前端的html js, php.ini需要开启 short_open_tag
  • app/config 有不同状态的配置,开发时从deploy中复制一份为 development ,然后再 .env 文件中修改为 development 即可
  • 每当修复某个bug或新加一些功能后,要编写对应的测试代码,以保障质量,测试代码位于 app/test ,如何运行参见 readme.txt 文件
  • 配置文件中的 app.cfg.php 为主配置文件,可以开启或关闭 缓存,调试等选项

前端说明

使用Jquery 作为基础的类库,前端数据获取主要通过ajax调用的方式获取,获取数据后通过handlebars模板引擎进行视图呈现。后期规划使用Vue的单页模式进行开发。 事项导航搜索模块的UI和交互等使用了Gitlab源码。