Skip to content

homyit/HyFrame

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HyFrame

简洁、流畅、安全、自适应移动设备的后台管理框架(基于ThinkPHP)

Document: http://pan.baidu.com/s/1gdCM4iJ

DEMO: http://hyframe.aihe.net.cn/demo/ (ACCOUNT:123/PASSWORD:123123)

Overview

框架基于ThinkPHP和Metronic二次封装,集成了众多现代特性(移动适配、AJAX为主),适用于多人协作开发中大型项目的后台管理框架。

框架特色

Thin Controller; Fat Model; Robust Service!

框架封装了多模块、多级角色的路由及权限验证,采用统一入口,一般业务无需写控制器,只需要按HyFrame的说明,“配置”强大的Model,剩下的,由框架帮你搞定!

以AJAX实现为主,操作流畅,更为现代!

系统中的模块,以一个all操作响应路由,并输出基础页面。剩下的列表数据显示、检索、详情查看、新增、编辑、删除等均通过ajax操作的统一入口处理通信请求,操作流畅,对用户友好,对服务也友好!

统一入口的封装,使得开发更为便利,整体质量更容易控制,更安全。

移动适配,一套代码包揽PC、手机、平板、微信等

很有现代范的管理系统框架,界面简洁美观,基于Bootstrap的响应式处理。可以提高系统的价值,同时也并不会增加太多工作量。在手机上,屏幕很窄,系统采用众多技术解决在手机上的特殊显示问题,经过多次改进,现有的适配方案表现出众!

强大之处:你可以选择不写HTML代码来开发网站!

框架基于ORM模型进行深入扩展,封装的HyAllModel对象,可以支持通过简单的PHP配置数组来实现CURD的页面效果(列表显示、检索、详情弹窗、新增、删除、修改、表单验证、文件上传等等)!

你也不必要担心扩展的问题。框架封装的时候,无论是PHP代码,还是JS代码,都特别注意对复杂业务的支持,不仅本身要足够强大,而且框架几乎任何地方都对扩展开放,你不必担心非得修改框架源码才能搞定。

够安全和基于多级角色路由的RBAC权限验证

框架在安全方面也做了众多考虑,从数据存储、数据通信,对保密性、不可伪造性的保证下了很多功夫。此外,基于RBAC的权限验证思想,扩展了角色路由的实现,使得即使系统角色再多,也可以让开发简单方便!

多人协作开发的支持

在面临较大项目的开发时,多人合作是必须的。对此框架支持并鼓励用模块化思想开发,同时在权限验证、静态资源资源加载等方面,都做了特殊封装,可使得多人合作独立但不失统一!

框架性能及高并发的支持

框架面向较为复杂的管理系统封装,特别注重并发问题。框架在缓存方面做了很多优化,合理利用CACHE,SESSION默认存在数据库中,SESSION的数据量也很小,支持分布式数据库,此外ThinkPHP也支持SAE、BAE等平台。

Get started

规范:

编码规范:标识符命名规范参考ThinkPHP手册。关键几点:类名(MyName),方法、变量(myName),常量和配置项(MY_NAME),HTML中id、class(my-name)

数据库规范:表名、字段名用小写,单词间用下划线。 一般都有id(主键,无符号int,自增)、status(无符号int、默认1、大于9表示逻辑删除)、create_time(无符号int、时间戳)、update_time(无符号init、时间戳)这四个字段。 外键、经常需要检索的字段需要建索引(如users表中的name字段)。 善于利用视图。

统一代码:赋值(=)、比较(>、!= ...)、? :、运算符(+、-、.=、+= ...)前后加一个空格。“,”、“:”之后加一个空格

框架部分实现说明

SESSION:框架默认将SESSION存在数据库中,在高并发、大容量下会有更好的表现(但是框架本身使用的SESSION很小,只有几kb),支持分布式数据库。

能CACHE不SESSION:为了减少数据库请求,我们会采取缓存的策略。如框架会自动将frame_setting表中的系统配置项缓存等,采用Cache方式缓存。再如,对于用户的权限规则,我们不同于众多框架那样进行Session缓存,而是根据角色分类进行Cache,这样可以大大减轻服务器的磁盘开销。

密码:先求密码连同一个复杂字符串(可配置)的sha1哈希值(保证密文不可破解),再通过不固定的IV(初始化向量)的AES方式加密,以保证相同的密码的加密结果不同,避免根据常用密码频率高来穷举破解。

登录:系统支持单点登录(可配置是否开启)。实现:页面输出一个随机秘钥用于用户名的AES加密;密码连同复杂字符串做SHA1哈希运算,并从中截取出用于密码AES加密的秘钥进行加密,提交加密后的用户名密码表单后,服务器以逆向思路进行比对。

表单及通信:表单新增时,保证不会重复提交。列表显示和编辑时,数据的主键进行动态加密,以防被随意篡改。提交前进行JS字段有效性验证,写入前再次验证。

上传下载:文件上传通过AJAX方式实现,支持文件类型限制、显示上传进度、文件转储,重复文件自动删除。下载链接是动态的,而且只有当前用户,在当前登录状态可以访问,无需担心数据文件泄露。

统一入口:URL访问通过all操作进入到某一个基础的管理页面(如系统公告),剩下的列表显示、检索、CRUD等均通过ajax操作入口响应AJAX实现。

配置方式加载静态资源:每个模块或页面需要加载的静态资源(JS、CSS),可直观地统一配置,从而多人协作开发时更加方便!

角色权限支持继承:框架对多级角色,无论是从权限控制上,还是编码上,都有很好的支持。可以减少重复的工作量,提高开发效率。

操作日志:系统提供了完备的操作日志记录流程,并提供了检索页面。

系统公告、消息提醒、个人信息及维护、站内邮件已封装在框架之内! 框架附带一个DEMO实例,可以更方便学习和更快上手!

框架文件结构

JavaScript:

global/scripts/hyframe.js 框架基础JS库。提供了众多实用的jQuery Tools的扩展,也提供了针对框架的一些工具。

global/scripts/jquery.hyall.js 框架管理页面(All in one)的jQuery插件封装,这样用起来更方便,更强大,支持复杂的情况下一个页面多个实例!

global/scripts/datatable.js 表格Helper

global/scripts/hy-import.js 其他扩展的支持

pages/scripts/login.js 登录页面交互处理

pages/scripts/*.js 页面业务逻辑处理

Controller:

HyFrame 框架基础控制器

HyAll 管理页面控制器(如果需要遵循框架的统一入口,则自己的业务控制器继承此控制器)

HyFile 文件上传下载

HyStart 项目入口,登录等

Empty 每个模块必须有一个Empty控制器,这样就可以实现配合HyAllModel对象配置式编程,不写控制器文件完成管理页面。

Model:

HyFrame 框架基础模型:封装了对连表查询的简单而强大的支持

HyAll 实现配置式编程,负责管理列表页及CRUD,自己的业务模型继承此模型

HyFile 文件上传下载

HyAccount 账号相关,登录、加密等

HyAuth 权限验证及路由

HyNotice 系统公告

HyAlert 消息提醒

HyLog 操作日志

HyMail 站内邮件

TODO

1、文档更新 2、前端模块化

About

简洁、流畅、安全、自适应移动设备的后台管理框架(基于ThinkPHP)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 42.8%
  • CSS 22.8%
  • JavaScript 18.6%
  • PHP 15.7%
  • Smarty 0.1%