HuiCMF 一个基于 Webman 框架的高性能内容管理系统

HuiCMF 一个基于 Webman 框架的高性能内容管理系统

📋 项目简介

HuiCMF 是一个基于 Webman 高性能 HTTP 服务框架开发的现代化内容管理系统。采用 PHP 8.3+ 构建,集成了 Pear Admin LayUI 3.x 后台管理框架【iframe模式】,提供完整的用户管理、权限控制、内容管理等功能。

✨ 主要特性

  • 🚀 高性能:基于 Workerman 常驻内存模型,性能远超传统 PHP-FPM 架构
  • 🎨 现代化UI:集成 Pear Admin LayUI 3.x,界面美观,操作便捷
  • 🛡️ 安全可靠:内置完善的权限控制和安全防护机制
  • 🔧 易于扩展:采用插件化架构,支持自定义模块开发
  • 📱 响应式设计:完美支持 PC、平板、手机等多种终端
  • 📊 API支持:提供 RESTful API 接口,支持前后端分离
  • 🌐 国际化:内置多语言支持框架
  • 🧾 多数据库:同时支持mysql和pgsql(安装的时候可选)

🏗️ 技术栈

组件
版本
说明
PHP
>= 8.3
核心语言
Webman Framework
~2.1
高性能HTTP服务框架
Think ORM
^2.1
数据库ORM
Laravel Cache
^2.0
缓存系统
Pear Admin LayUI
3.x+
后台UI框架
MySQL
5.6+ / 5.7+
数据库   (可二选一)
PgSQL
12+
数据库  (可二选一)

🚀 快速开始

📋 环境要求

  • PHP 8.3+
  • Composer
  • MySQL 5.6+ (推荐 5.7+)
  • PgSQL 12+ (推荐 16+)
  • Nginx / Apache (可选)

💾 安装步骤

1. 克隆项目

git clone https://gitee.com/xianrenqh/huicmf_webman.git
cd huicmf_webman

2. 安装依赖

composer install

3. 数据库配置

执行安装,会自动创建数据库表和初始数据。

注意,如果默认使用Pgsql,请把根目录下的:pgsql12.sql 导入对应的pgsql数据库,否则程序会报错。

4. 配置修改

  • 编辑 config/app.php 设置应用名称、调试模式等
  • 编辑 config/plugin/admin/app.php 配置管理员信息

🌐 访问地址

  • 后台管理http://127.0.0.1:8789/app/admin
  • 在线演示:https://webman2.xiaohuihui.club/app/admin

默认管理员账号:

  • 用户名:admin
  • 密码:123456

⚙️ 配置说明

🔧 服务器配置

Nginx 配置示例

upstream webman {
    server 127.0.0.1:8789;
    keepalive 10240;
}

server {
    listen 80;
    server_name your-domain.com;
    root /path/to/huicmf_webman/public;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        if (!-f $request_filename){
            proxy_pass http://webman;
        }
    }

    # 静态文件处理
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
        expires      30d;
    }
}

开发环境启动

# Windows
php windows.php start

# Linux/Mac
php start.php start

📁 目录结构

huicmf_webman/
├── app/                    # 应用目录
│   ├── admin/             # 后台管理模块
│   ├── api/               # API接口模块
│   ├── controller/        # 控制器
│   ├── middleware/        # 中间件
│   ├── model/             # 模型
│   └── view/              # 视图模板
├── config/                # 配置文件
├── plugin/                # 插件目录
├── public/                # 静态资源
├── support/               # 助手类
├── vendor/                # Composer依赖
├── composer.json          # Composer配置
├── start.php             # 启动文件
└── README.md             # 项目文档

🔌 API 文档

RESTful API

系统提供完整的 RESTful API 接口,支持前后端分离开发。

认证接口

POST /api/auth/login
Content-Type: application/json

{
    "username": "admin",
    "password": "123456"
}

获取用户信息

GET /api/user/profile
Authorization: Bearer {token}

接口特性

  • 🔐 JWT Token 认证
  • 📝 RESTful 风格设计
  • 🛡️ 权限验证中间件
  • 📊 统一响应格式
  • 📝 完整的 API 文档

🎯 核心功能

👥 用户管理

  • 用户注册、登录、权限管理
  • 角色权限分配
  • 用户行为日志

📝 内容管理

  • 文章发布、编辑、删除
  • 分类管理
  • 标签系统

🔧 系统设置

  • 基础配置管理
  • 缓存管理
  • 日志查看

📊 数据统计

  • 访问统计
  • 用户活跃度
  • 内容分析

🛠️ 开发指南

🧩 插件开发

1、 参考官网手册

https://www.workerman.net/doc/webman/app/create.html

2、创建插件之后,需要修改插件目录下 api/Install.php文件:

官方创建的是lavel框架,默认这里使用的是thinkphp框架,所以如果有安装sql文件的话,这里一定要修改

第六行修改为:

use think\facade\Db;

第178行修改为:

Db::connect(static::$connection)->execute($sql);

3、修改代码

插件开发操作数据库表(比如新建表),请统一使用模型操作,在模型里面定义表名,否则插件升级的时候,会因表前缀不一致而报错。 例如:

protected $table = "cmf_email_template";

其他

后台插件如不想升级,请在对应的插件配置文件,例如:admin plugin/admin/config/app.php 中将 version 改为 任意最大值。例如:10.0.0

带安装sql的插件

如果携带install.sql文件的,请注意,sql语句中 注释部分或者【COMMENT注释】一定不要出现 英文的分号 (;),否则会报错。

// 创建插件控制器
namespace app\admin\controller;

use support\Request;

class MyController
{
    public function index(Request $request)
    {
        return response('Hello World');
    }
}

🎨 前端开发

使用 LayUI + jQuery 进行前端开发:

layui.use(['table', 'form'], function () {
var table = layui.table;
var form = layui.form;

// 初始化表格
  table.render({
    elem: '#dataTable',
    url: '/api/data/list',
    cols: [[
      {field: 'id', title: 'ID'},
      {field: 'name', title: '名称'}
    ]]
  });
});

📚 数据库操作

使用 Think ORM:

use think\facade\Db;

// 查询数据
$users = Db::name('user')->where('status', 1)->select();

// 插入数据
Db::name('user')->insert([
    'username' => 'test',
    'email' => 'test@example.com'
]);

 

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
相关推荐
评论 抢沙发

请登录后发表评论

    暂无评论内容