针对LayuiAdmin后台模板使用ThinkPHP5开发的基础版本
等一个项目开始之初送需要基础功能方案。
www WEB部署目录(或者子目录)
├─admin 系统后台应用目录
├─public 系统后台入口
│ ├─static 公共资源
│ │ ├─index Layuiadmin 模板文件
├─extend 主要功能类目录
│ ├─common 公共类文件
│ │ ├─authority 权限相关类
│ │ │ ├─AdminMenuAccess.php 菜单权限
│ │ │ ├─AdminRole.php 用户角色组
│ │ │ ├─AdminRoleMenuAccess.php 菜单权限与用户角色组关系
│ │ │ ├─AdminRoleRouteAccess.php 方法权限与用户角色组关系
│ │ │ ├─AdminRouteAccess.php 方法权限
│ │ │ ├─AdminUserRole.php 系统管理员与角色关系模型
│ │ ├─console think 命令行
│ │ │ ├─test.php think 指令类示例
│ │ ├─custom 获取公共信息
│ │ │ ├─TerminalInfo.php 获取web客户端信息类(包括ip信息)
│ │ ├─heillog 日志系列
│ │ │ ├─ErrorLog.php 系统日志写入类
│ │ │ ├─SsrUserLog.php SSR操作用户记录日志写入类
│ │ ├─helper 自定义助手函数系列
│ │ │ ├─helper.php 自定义助手函数
│ │ ├─menu 菜单系列
│ │ │ ├─AdminMenu.php 系统后台菜单
│ │ │ ├─AppMenu.php 用户前台菜单
│ │ ├─redis redis系列
│ │ │ ├─RedisLogin.php redis登录类
│ │ │ ├─RedisModel.php redis基类
│ │ ├─Safety 密码、验证、JWT系列、数据加密等相关
│ │ │ ├─Safetylogin.php 密码、验证、JWT系列、数据加密等相关
│ │ ├─VerifiController 用以被控制器继承的权限验证、登录验证、基本信息获取
│ │ │ ├─AdminLoginVerifi.php 系统后台
│ │ │ ├─UserLoginVerifi.php 用户前台
│ ├─SendMail 阿里云邮件类
│ │ ├─EmailLog.php 邮件日志类
│ │ ├─SendMail.php 初始化邮件发送类
│ │ ├─Mail.php 邮件发送方法类
├─table.sql 表结构(用户表中的用户需要自己添加)
├─config.js LayuiAdmin的配置
注意:这里在\thinkphp\library\think\log\driver目录下增加MysqFile.php驱动类使用MySQL记录系统错误日志(可在应用的config.php中修改)
使用 composer 安装 ThinkPHP
composer create-project topthink/think=5.0.* tp5 --prefer-dist
使用 git 安装 ThinkPHP
https://github.com/top-think/think
所有业务逻辑与数据操作都放在模型(M)中,控制器(C)中不再有任何业务逻辑也不要在控制器中进行db操作,控制器只做请求的转发与权限控制。 API数据规范:控制器中所有的API数据(针对LayuiAdmin的)统一使用Result()助手函数(helper.php)。
所有控制器都必须遵守如下规范,这是为了方便RBAC系统读取当前应用下所有的方法做权限列表(如果想隐藏控制器与权限不做下方规则定义方可)。
~~~
namespace app\authority\controller;
/**
* 系统用户组管理 (这里必须加以说明控制器功能)
*/
class Menuaccess extends \VerifiController\AdminLoginVerifi (继承AdminLoginVerifi)
{
(必须 有 title 静态方法 方法内以数组键值对【'方法'=>'方法说明'】)
/**
* [title 标题]
* @Effect
* @return [type] [description]
*/
static function title()
{
return[
'updateList'=>'更新系统菜单权限',
'setList'=>'设置用户组菜单权限',
];
}
}
~~~
WEB IM方案前端所以LayIM,后端使用ThinkPHP5+GatewayWorker结合构建。
前端具体在/public/static/index/src/views/index.html中(这里注意var socket = new WebSocket('wss://demo.heil.red:8282');中的地址:1、wss是在https情况下使用的同时必须使用域名,如果你本地环境请修改我ws://127.0.0.1:8282)。
GatewayWorker具体在GatewayWorker/Applications/YourApp/下的三个文件需要根据你的实际环境进行配置(特别注意当tp环境与GatewayWorker环境不在统一网络下)start_gateway.php文件中配置ssl(https证书)。
启动GatewayWorker 使用命令行进入到GatewayWorker目录 使用 php start.php start -d命令 没有-d是调试命令。
gatewayclient(Gateway客户端)/vendor/workerman/gatewayclient/Gateway.php。
ThinkPHP5在IM模块只的IM控制器中有简单的业务代码。
// 定义项目路径
define('APP_PATH', './admin/');
// 加载框架命令行引导文件
require './thinkphp/console.php';
// 定义项目路径
return [
'\extend\console\test',
];