OpenCenterV3开发文档 2019.1.24

OC3.0开发文档php

总体概述

功能介绍

OpenCenter3.0是一款基于ThinkPHP5.1和LayUIAdmin开发的后台管理系统。主要功能包括管理员和用户管理、权限和权限组、行为日志、积分系统、广告管理等。sql

系统运行介绍

环境要求

  • PHP >= 5.6.0 (推荐PHP7.1以上版本)
  • MySQL >= 5.0.0 (须要支持InnoDB引擎)
  • Apache 或 Nginx
  • PDO PHP Extension
  • MBstring PHP Extension
  • CURL PHP Extension

推荐安装

  • Composer 第三方包管理工具
系统安装

运行根目录需指向public文件夹。访问网站后填写相关参数便可进行系统安装。thinkphp

数据库文档

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之间

全部数据内容

数据表

  • 目前主要包含如下表:apache

  • 管理员表 oc_adminjson

  • 管理员权限组表 oc_admin_auth_group缓存

  • 管理员权限表 oc_admin_auth_rule安全

  • 管理员日志表 oc_admin_logcookie

  • 广告表 oc_common_advsession

  • 广告位置表 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.md 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模块下的权限会在顶部导航栏显示
  • 支持菜单的搜索功能
  • 在配置好权限,分配好权限组以后须要清除缓存刷新页面就能够看到设置以后的菜单效果了
  • 切换登陆角色以后能够直接切换菜单的显示
相关文章
相关标签/搜索