OC3.0开发文档
整体概述
功能介绍
OpenCenter3.0是一款基于ThinkPHP5.1和LayUIAdmin开发的后台管理系统。主要功能包括管理员和用户管理、权限和权限组、行为日志、积分系统、广告管理等。
系统运行介绍
环境要求
- PHP >= 5.6.0 (推荐PHP7.1以上版本)
- MySQL >= 5.0.0 (需要支持InnoDB引擎)
- Apache 或 Nginx
- PDO PHP Extension
- MBstring PHP Extension
- CURL PHP Extension
推荐安装
- Composer 第三方包管理工具
系统安装
运行根目录需指向public文件夹。访问网站后填写相关参数即可进行系统安装。
数据库文档
SQL存放路径
系统安装所需的SQL文件是在/application/admin/command/Install/install.sql。
数据库设计习惯
- 所有数据表默认使用InnoDB引擎
- 因使用了第二表前缀,需要在模型类中定义绑定的表名
- 字段类型应在满足要求的前提下占用最小的空间
- 数据表默认的字段包括id,create_time,update_time,status等
- create_time和update_time使用int(11),status使用tinyint(1),范围在-1,0,1,2之间
所有数据内容
数据表
-
目前主要包含以下表:
-
管理员表 oc_admin
-
管理员权限组表 oc_admin_auth_group
-
管理员权限表 oc_admin_auth_rule
-
管理员日志表 oc_admin_log
-
广告表 oc_common_adv
-
广告位置表 oc_common_adv_pos
-
配置表 oc_common_config
-
IP黑名单表 oc_common_ip_black_list
-
图片表 oc_common_picture
-
用户表 oc_user
-
用户行为限制表 oc_user_action_limit
-
用户行为日志表 oc_user_action_log
-
用户统计表 oc_user_count
-
用户日志表 oc_user_log
-
用户角色表 oc_user_role
-
用户权限表 oc_user_rule
-
用户积分变动表 oc_user_score_log
-
积分规则表 oc_user_score_rule
-
积分类型表 oc_user_score_type
-
详见OpenCenter3.0数据字典
关键数据内容
#程序源码文档
代码编写习惯
ThinkPHP5.1遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范:
目录和文件
目录使用小写+下划线;类库、函数文件统一以.php为后缀;类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;类文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名;类名和类文件名保持一致,统一采用驼峰法命名(首字母大写);复制代码
函数和类、属性命名
类的命名采用驼峰法(首字母大写),例如 User、UserType,默认不需要添加后缀,例如UserController应该直接命名为User;函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip;方法的命名使用驼峰法(首字母小写),例如 getUserName;属性的命名使用驼峰法(首字母小写),例如 tableName、instance;特例:以双下划线__打头的函数或方法作为魔术方法,例如 __call 和 __autoload;复制代码
常量和配置
常量以大写字母和下划线命名,例如 APP_PATH;配置参数以小写字母和下划线命名,例如 url_route_on 和url_convert;环境变量定义使用大写字母和下划线命名,例如APP_DEBUG;复制代码
数据表和字段
数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段,不建议使用驼峰和中文作为数据表及字段命名。复制代码
请理解并尽量遵循以上命名规范,可以减少在开发过程中出现不必要的错误。
程序目录结构
www WEB部署目录(或者子目录)
├─application 应用目录 │ ├─common 公共模块目录(可以更改) │ ├─module_name 模块目录 │ │ ├─common.php 模块函数文件 │ │ ├─controller 控制器目录 │ │ ├─model 模型目录 │ │ ├─view 视图目录 │ │ ├─config 配置目录 │ │ └─ ... 更多类库目录 │ │ │ ├─command.php 命令行定义文件 │ ├─common.php 公共函数文件 │ └─tags.php 应用行为扩展定义文件 │ ├─config 应用配置目录 │ ├─module_name 模块配置目录 │ │ ├─database.php 数据库配置 │ │ ├─cache 缓存配置 │ │ └─ ... │ │ │ ├─app.php 应用配置 │ ├─cache.php 缓存配置 │ ├─cookie.php Cookie配置 │ ├─database.php 数据库配置 │ ├─log.php 日志配置 │ ├─session.php Session配置 │ ├─template.php 模板引擎配置 │ └─trace.php Trace配置 │ ├─route 路由定义目录 │ ├─route.php 路由定义 │ └─... 更多 │ ├─public WEB目录(对外访问目录) │ ├─index.php 入口文件 │ ├─router.php 快速测试文件 │ └─.htaccess 用于apache的重写 │ ├─thinkphp 框架系统目录 │ ├─lang 语言文件目录 │ ├─library 框架类库目录 │ │ ├─think Think类库包目录 │ │ └─traits 系统Trait目录 │ │ │ ├─tpl 系统模板目录 │ ├─base.php 基础定义文件 │ ├─convention.php 框架惯例配置文件 │ ├─helper.php 助手函数文件 │ └─logo.png 框架LOGO文件 │ ├─extend 扩展类库目录 ├─runtime 应用的运行时目录(可写,可定制) ├─vendor 第三方类库目录(Composer依赖库) ├─build.php 自动生成定义文件(参考) ├─composer.json composer 定义文件 ├─LICENSE.txt 授权说明文件 README 文件 ├─think 命令行入口文件函数库
目前用到的函数库统一存放在application/common.php下,后续单个模块需要用到可在模块文件夹下写入common.php
二次开发
数据库
- 数据表的命名方式:表前缀_模块名_表名。
- 系统内置表的模块名有admin、user、common。请开发者在创建模块的时候注意区分。
系统功能
登录
- 管理员登录、记住密码、验证码刷新
首页
- 首页右上角管理员可以切换身份或者退出系统
- 首页主题色切换和清除缓存
- 首页顶部搜索菜单
- 首页顶部非admin模块作下拉菜单显示
管理员管理
- 管理员列表可以多选权限分组,支持无限极分组
- 管理权限支持菜单图标选择,绑定权限节点,和菜单显示配置
- 管理分组支持多级权限树选择
- 管理日志
用户管理
- 注册配置和注册开关
- 用户管理
- 用户角色,支持无限极分组
- 用户权限
- 用户日志
运营
- 广告位置和广告管理
1.广告位的使用
广告位的添加需要在页面上加入一段代码引入广告位的组件,然后再后台运营-广告位置处添加相对应的广告信息,主要是路径,类型可以是单图、多图、文字链接或者是代码,并且可以设置广告的宽度、高度、边缘留白和内部留白。 复制代码
2.权限的使用
在后台管理员管理-管理权限可以对权限进行添加、编辑、删除操作。在添加和编辑页面,可以设置权限的名称、模块名、URL、从属的父级权限、权限的图标、说明文字、排序、是否作为菜单、是否显示等。在后台管理员管理-管理分组可以对权限分组进行添加、编辑、删除操作。在添加和编辑页面,可以设置权限组的名称、所属的应用或者模块、从属的父级权限组、描述信息、有效期、状态并可以从权限树中分配权限给该权限组。注意:编号为1的默认是超级管理员所属权限组,是不能进行删除操作的。同样,编号为1的管理员是超级管理员,也是不可以删除的。在以上操作完成之后,就可以在管理员列表对管理员分配权限组了。一个账号可以有多个权限组,拥有的权限取并集,但是为了防止多个权限组的混用使得权限变得不分明,在菜单的显示上只显示当前角色所拥有的菜单列表,管理员依然可以通过URL进行直接跳转。用户管理的权限配置也是遵循上述的步骤,这里不再赘述。复制代码
-
积分管理
在后台运营-积分管理分为积分类型管理、积分规则、积分日志三大功能。
1.积分类型管理
积分类型管理支持对积分的新增、编辑、删除操作。可以设置积分的名称、积分单位、积分说明以及设置该类积分的启用状态。注意:系统预置的id为1-4的积分类型是不支持删除的。复制代码
2.积分规则
积分规则可以设置规则标题、绑定权限节点、变动方式、变动数量、变动积分类型、频次和启用状态等。复制代码
3.积分日志
积分日志用于显示用户积分变动情况。主要是显示用户id、IP、积分类型、变化量、最终积分、模块、积分规则id和创建时间。复制代码
安全
-
行为限制
在后台安全-行为限制可以对用户行为进行管理。主要可以编辑标题、绑定权限节点、设置限制的频次和周期、设置处罚方式以及是否启用该行为限制等。
其他
1.菜单机制
- 菜单的显示依赖于当前登录用户所用的权限组(或称为角色)所拥有的权限,并且是设置为处于显示状态的菜单才能显示
- admin模块下的权限会在左侧菜单栏显示,而非admin模块下的权限会在顶部导航栏显示
- 支持菜单的搜索功能
- 在配置好权限,分配好权限组之后需要清除缓存刷新页面就可以看到设置之后的菜单效果了
- 切换登录角色之后可以直接切换菜单的显示