2 changed files with 241 additions and 1 deletions
@ -0,0 +1,238 @@ |
|||||
|
# 睿能科技官网(rui-neng)项目文档 |
||||
|
|
||||
|
> 文档生成时间:2026-09-05 |
||||
|
> 项目路径:`D:\phpstudy_pro\WWW\rui-neng` |
||||
|
> 代码仓库:https://git-online.zhco.com/wjd/rui-neng (默认分支 `master`) |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 1. 项目概述 |
||||
|
|
||||
|
本项目是**睿能科技**的企业官网,基于 **HuoCMS V3.5.1**(`version` 文件标识)二次开发而成。HuoCMS 是一款基于 ThinkPHP 6 的多站点、多语言内容管理系统(CMS),支持可视化建站、内容模型自定义、SEO 管理、询盘(Inquiry)收集等企业官网核心能力。 |
||||
|
|
||||
|
本项目当前主要服务于睿能科技官网的前台页面定制(产品、新闻、联系、关于等页面样式与跳转调整),并通过 HuoCMS 后台进行内容与站点管理。 |
||||
|
|
||||
|
### 核心特性 |
||||
|
|
||||
|
- **多站点 / 多语言**:支持简体中文(zh)、繁体中文(tc)、英文(en)三种语言版本,路由按站点 ID + 语言拆分文件管理。 |
||||
|
- **可视化设计**:支持页面可视化设计器(Design)、主题管理(Theme)、主题文件编辑。 |
||||
|
- **内容模型**:自定义内容模型(Module)与字段(ModuleField),栏目-内容树形结构。 |
||||
|
- **询盘/表单**:询盘管理、自定义表单(DiyForm)、询盘邮件通知。 |
||||
|
- **SEO**:关键词管理、Sitemap、robots、SEO 检测、Google 统计对接。 |
||||
|
- **插件机制**:插件以独立目录形式组织(如 `user` 用户插件、`api` 插件),可扩展路由、控制器、模型。 |
||||
|
- **多存储后端**:本地、七牛(Qiniu)、腾讯云 COS、阿里云 OSS。 |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 2. 技术栈 |
||||
|
|
||||
|
| 分类 | 技术 | 版本要求 | |
||||
|
|---|---|---| |
||||
|
| 语言 | PHP | >= 7.2 | |
||||
|
| 框架 | ThinkPHP | ^6.0 | |
||||
|
| ORM | topthink/think-orm | ^2.0 | |
||||
|
| 数据库迁移 | topthink/think-migration | ^3.0 | |
||||
|
| 模板引擎 | topthink/think-template / think-view | ^2.0 / ^1.0 | |
||||
|
| HTTP 客户端 | guzzlehttp/guzzle | ~6.0 | |
||||
|
| Excel | phpoffice/phpspreadsheet | 1.18.0 | |
||||
|
| WebSocket/长连接 | workerman、workerman/phpsocket.io、workerman/mysql | ^4.0 / ^1.1 / ^1.0 | |
||||
|
| 对象存储 | qiniu/php-sdk、qcloud/cos-sdk-v5、aliyuncs/oss-sdk-php | — | |
||||
|
| 表单构建 | xaboy/form-builder | ~2.0 | |
||||
|
| 邮件 | yzh52521/think-mail、phpmailer/phpmailer | — | |
||||
|
| 短信 | alibabacloud/dysmsapi-20170525(阿里云短信) | 2.0.18 | |
||||
|
| JWT | easyswoole/jwt | ^2.0 | |
||||
|
| 简繁转换 | overtrue/pinyin、php-opencc(本地 extend) | — | |
||||
|
| 海报 | hedali/poster | dev-main | |
||||
|
| 爬虫/采集 | electrolinux/phpquery、zoujingli/ip2region | — | |
||||
|
|
||||
|
**PHP 扩展依赖**:`xmlwriter`、`json`、`simplexml`、`zip`、`dom`、`xlswriter`、`openssl`、`bcmath`。 |
||||
|
|
||||
|
**运行环境**:本地使用 phpstudy_pro 部署(站点根目录为 `public/`),数据库为 MySQL(当前 `.env` 中库名 `rui_neng_test`,表前缀 `hc_`)。 |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 3. 目录结构 |
||||
|
|
||||
|
``` |
||||
|
rui-neng/ |
||||
|
├── app/ # 应用主目录(PSR-4: app\) |
||||
|
│ ├── controller/ |
||||
|
│ │ ├── backend/ # 后台管理控制器(60+ 个) |
||||
|
│ │ ├── frontend/ # 前台控制器(列表、详情、搜索、表单、询盘、SEO、标签) |
||||
|
│ │ └── api/ # API 控制器 |
||||
|
│ ├── model/ # 数据模型(71 个,如 Content、Category、Inquiry…) |
||||
|
│ ├── service/ # 业务服务层(30+ 个,含 keywordMonitor、sms、upload 子目录) |
||||
|
│ ├── middleware/ # 中间件(登录、权限、禁用、插件路由) |
||||
|
│ ├── listener/ # 事件监听(管理员登录/操作日志) |
||||
|
│ ├── validate/ # 验证器 |
||||
|
│ ├── command/ # 命令行任务(百度统计、Web 诊断、代码生成等) |
||||
|
│ ├── hcinterface/ # 系统设置接口(SysSettingInterface) |
||||
|
│ ├── hctrait/ # 公共 Trait |
||||
|
│ ├── common.php # 公共函数 |
||||
|
│ ├── event.php # 事件定义 |
||||
|
│ ├── provider.php # 容器绑定 |
||||
|
│ └── middleware.php # 全局中间件 |
||||
|
├── config/ # 框架与业务配置(app、database、jwt、rbac、route、system 等) |
||||
|
├── route/ # 路由定义 |
||||
|
│ ├── admin.php # 后台路由(安装、登录、各管理模块) |
||||
|
│ ├── index.php # 前台公共路由(询盘、标签、搜索、表单、SEO 等) |
||||
|
│ ├── 1_zh_frontend.php # 站点1 中文前台路由(域名绑定 ruineng.test.cc) |
||||
|
│ ├── 1_tc_frontend.php # 站点1 繁体 |
||||
|
│ ├── 1_en_frontend.php # 站点1 英文 |
||||
|
│ ├── 1_zh_plugin_api.php # 站点1 插件 API 路由 |
||||
|
│ ├── 4_* # 站点4 对应路由(多站点) |
||||
|
│ └── app.php # 默认示例路由 |
||||
|
├── plugins/ # 插件(PSR-4: plugins\) |
||||
|
│ ├── user/ # 用户插件(含 install.sql、api/backend/模型/监听) |
||||
|
│ └── api/ # API 插件 |
||||
|
├── extend/ # 扩展类库(helper、sys、traits、php-opencc) |
||||
|
├── view/ # 后台视图(common:css/html/js) |
||||
|
├── public/ # Web 根目录 |
||||
|
│ ├── index.php # 前台入口 |
||||
|
│ ├── admin.php # 后台入口 |
||||
|
│ ├── themes/website/1/ # 站点1 主题模板(zh / en 两套语言目录) |
||||
|
│ ├── static/、customStatic/ # 静态资源 |
||||
|
│ ├── storage/、system_file/ # 上传存储 |
||||
|
│ └── tinymce/ # 富文本编辑器 |
||||
|
├── data/、backup/ # 数据与备份 |
||||
|
├── runtime/ # 运行时缓存/日志 |
||||
|
├── tests/ # 测试 |
||||
|
├── think # 命令行入口 |
||||
|
├── composer.json # 依赖管理 |
||||
|
└── .env # 环境配置(APP/DATABASE/LANG) |
||||
|
``` |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 4. 模块说明 |
||||
|
|
||||
|
### 4.1 后台管理(app/controller/backend) |
||||
|
|
||||
|
通过 `public/admin.php` 入口 + `route/admin.php` 路由访问,主要功能模块: |
||||
|
|
||||
|
| 分类 | 控制器 | |
||||
|
|---|---| |
||||
|
| 权限体系 | Admin(管理员)、Role(角色)、AdminMenu(菜单)、AdminLoginLog / AdminOptLog(登录与操作日志) | |
||||
|
| 站点管理 | Website(多站点)、WebsiteLang、WebsiteSetting、WebsiteServer、SysSetting(系统设置)、SystemInstall(安装向导) | |
||||
|
| 内容体系 | Category(栏目)、Content(内容)、ContentTag、Module / ModuleField(内容模型与字段)、Tag(标签)、RecycleBin(回收站) | |
||||
|
| 营销/展示 | Slide / SlideCate(轮播)、Advertisement(广告)、Link(友情链接)、Nav / NavCate(导航)、Material(素材)、Poster(海报)、SocialMarketing | |
||||
|
| 询盘/表单 | Inquiry / InquiryCategory / InquiryEmail(询盘及邮件)、Form(自定义表单)、Excel(导入导出) | |
||||
|
| 招聘 | Job / JobCate / JobCity | |
||||
|
| SEO | Keyword / KeywordQuery / KeywordWebsite、Seo / SeoAccount / SeoCheck / SeoSetting、SiteMap、GoogleStatistics | |
||||
|
| 其他 | Attachment / AttachmentCate(附件)、Database(数据库备份)、Theme / ThemeFile(主题)、Plugin(插件)、StaticFile(静态文件)、Dashboard(仪表盘)、Statistics / InnerChart(统计图表) | |
||||
|
|
||||
|
### 4.2 前台(app/controller/frontend) |
||||
|
|
||||
|
- `List`:栏目列表页(首页也是特定栏目的列表页,如站点1首页绑定栏目 id=36) |
||||
|
- `Detail`:内容详情页(URL 形如 `/栏目拼音/:id`) |
||||
|
- `Search`:站内搜索(含视频、公告等返回值) |
||||
|
- `Tag`:标签页(`/tag`、`/tagList/:id`) |
||||
|
- `Form`:自定义表单展示与提交(`/c/:code`、`/addFormData`、文件上传与下载) |
||||
|
- `Inquiry`:询盘提交(`POST /inquiry/save`) |
||||
|
- `Design`:可视化设计页面 |
||||
|
- `Seo`:robots.txt、sitemap.xml、sitemap HTML 页 |
||||
|
|
||||
|
### 4.3 插件(plugins/) |
||||
|
|
||||
|
- **user**:会员用户体系插件,含前台 API、后台管理、模型、验证器、`install.sql`。 |
||||
|
- **api**:对外 API 插件。 |
||||
|
|
||||
|
插件路由由全局中间件 `PluginsMiddleware` 初始化,路由文件存放在各插件的 `route/` 目录,并合并进 `route/{站点}_{语言}_plugin_api.php` 体系。 |
||||
|
|
||||
|
### 4.4 中间件 |
||||
|
|
||||
|
| 中间件 | 作用 | |
||||
|
|---|---| |
||||
|
| `think\middleware\LoadLangPack` | 多语言加载(全局启用) | |
||||
|
| `think\middleware\SessionInit` | Session 初始化(全局启用) | |
||||
|
| `app\middleware\PluginsMiddleware` | 插件路由初始化(全局启用) | |
||||
|
| `app\middleware\LoginMiddleware` | 后台登录校验 | |
||||
|
| `app\middleware\AuthMiddleware` | 后台 RBAC 权限校验(配置见 `config/rbac.php`) | |
||||
|
| `app\middleware\ApiLoginMiddleware` | API 登录态校验(JWT,配置见 `config/jwt.php`) | |
||||
|
| `app\middleware\ForbiddenMiddleware` | 禁用/拦截校验 | |
||||
|
|
||||
|
### 4.5 服务层(app/service) |
||||
|
|
||||
|
核心服务:`ContentService`(内容)、`CategoryService`(栏目)、`ModuleService` / `ModuleFieldService`(模型字段)、`WebsiteService` / `WebsiteLangService`(站点与语言)、`ThemeService` / `ThemeFileService`(主题)、`SitemapService`、`EmailService`(邮件)、`ExcelService`、`MysqlBackupService`(数据库备份)、`TranslateService`(翻译/简繁)、`PluginService`、`CacheService`、`BeautifyHtmlService`(HTML 美化)等;子目录 `sms/`(短信)、`upload/`(多存储上传)、`keywordMonitor/`(关键词监控)。 |
||||
|
|
||||
|
### 4.6 命令行任务(app/command) |
||||
|
|
||||
|
通过 `php think <command>` 执行: |
||||
|
|
||||
|
- `BaiduTongji` — 百度统计数据采集 |
||||
|
- `WebDiagnosis` / `WebDiagnosis2` / `WebDiagnosis3` — 网站诊断 |
||||
|
- `CreateModel` / `CreateController` / `CreateLink` — 脚手架/代码生成 |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 5. 路由设计 |
||||
|
|
||||
|
- **后台**:统一挂在 `route/admin.php`,格式为 `/<模块>/<action>` 映射到 `backend` 前缀控制器;安装向导与登录接口独立于权限中间件之外。 |
||||
|
- **前台公共**:`route/index.php` 定义询盘、标签、搜索、表单、设计器、SEO 等公共路由。 |
||||
|
- **站点路由**:按「站点ID_语言_frontend」命名(如 `1_zh_frontend.php`),使用 `Route::domain()` 绑定域名(如站点1中文绑定 `ruineng.test.cc`),栏目列表/详情路由由 CMS 根据栏目拼音自动生成(`List/index?id=栏目ID`、`Detail/index?cid=栏目ID`,详情 id 为数字)。 |
||||
|
- **多语言**:zh / tc / en 三份路由文件,确保多语言 URL 独立。 |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 6. 数据库 |
||||
|
|
||||
|
- 数据库连接配置于 `.env`(`[DATABASE]` 段)与 `config/database.php`;当前本地库:`rui_neng_test`,表前缀:`hc_`。 |
||||
|
- 模型层共 71 个模型(`app/model`),核心表(按前缀 `hc_` 推断): |
||||
|
- 内容:`hc_content`、`hc_category`、`hc_model`(内容模型)、`hc_model_field`、`hc_content_tag`、`hc_tag` |
||||
|
- 站点:`hc_website`、`hc_website_lang`、`hc_website_setting` |
||||
|
- 权限:`hc_admin`、`hc_role`、`hc_admin_menu`、`hc_admin_login_log`、`hc_admin_opt_log` |
||||
|
- 询盘/表单:`hc_inquiry`、`hc_inquiry_category`、`hc_inquiry_email`、`hc_diy_form` |
||||
|
- 展示:`hc_slide`、`hc_advertisement`、`hc_link`、`hc_nav`、`hc_attachment` |
||||
|
- 其他:`hc_job` 系列、`hc_keyword` 系列、用户插件表(见 `plugins/user/install.sql`) |
||||
|
- 数据库迁移使用 `topthink/think-migration`;后台提供数据库备份(`MysqlBackupService` / `DatabaseController`)。 |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 7. 本地部署与开发 |
||||
|
|
||||
|
1. **环境**:phpstudy_pro(PHP >= 7.2,启用 `xlswriter`、`zip`、`bcmath`、`openssl`、`simplexml`、`xmlwriter`、`dom` 等扩展),MySQL。 |
||||
|
2. **站点配置**:网站根目录指向 `D:\phpstudy_pro\WWW\rui-neng\public`,入口 `index.php`(前台)/ `admin.php`(后台)。 |
||||
|
3. **依赖安装**:`composer install`(注意 `minimum-stability: dev`,`extend/php-opencc` 以 path 仓库引入)。 |
||||
|
4. **环境配置**:复制/编辑 `.env`,配置 `[APP]`、`[DATABASE]`、`[LANG]`。 |
||||
|
5. **安装向导**:首次部署访问后台安装路由(`/install` 系列)完成安装检测。 |
||||
|
6. **常用命令**: |
||||
|
```bash |
||||
|
php think <command> # 命令行任务 |
||||
|
php think service:discover # 服务发现(composer 脚本自动触发) |
||||
|
``` |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 8. 二次开发说明(本项目定制点) |
||||
|
|
||||
|
根据近期 Git 提交记录,本项目相对 HuoCMS 原版的改动集中在**站点1 前台主题定制**(`public/themes/website/1/`,zh/en 两套模板): |
||||
|
|
||||
|
- 首页跳转逻辑调整、导航栏「展会与活动」跳转 |
||||
|
- 底部导航调整、底部 logo 更换为深色版本 |
||||
|
- 可展开遮罩导航(mask navigation)支持子项 |
||||
|
- 产品页移动端样式(图片大小限制、内边距)、分类导航移动端不固定 |
||||
|
- 联系页面表单结构(添加锚点 ID)、标题显示、圆角调整 |
||||
|
- 新闻详情分页 hover 样式、关于页段落样式 |
||||
|
- 路由复用优化、搜索返回值修复 |
||||
|
|
||||
|
开发建议: |
||||
|
|
||||
|
- 前台页面改动优先在主题目录 `public/themes/website/{站点ID}/{语言}/` 内进行,避免直接修改框架文件,便于后续 HuoCMS 版本升级合并。 |
||||
|
- 栏目路由由后台「栏目管理」的栏目拼音自动生成,新增栏目后需确认对应站点语言路由文件已更新。 |
||||
|
- 多语言内容通过 `WebsiteLang` / `TranslateService` 管理,简繁转换依赖 `extend/php-opencc`。 |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
## 9. 目录速查 |
||||
|
|
||||
|
| 需要改什么 | 去哪里 | |
||||
|
|---|---| |
||||
|
| 后台接口/业务 | `app/controller/backend/` + `app/service/` | |
||||
|
| 前台页面逻辑 | `app/controller/frontend/` | |
||||
|
| 前台页面模板/样式 | `public/themes/website/{站点ID}/{语言}/` | |
||||
|
| 路由 | `route/`(后台 `admin.php`,前台公共 `index.php`,站点 `1_zh_frontend.php` 等) | |
||||
|
| 数据模型 | `app/model/` | |
||||
|
| 配置 | `config/` + `.env` | |
||||
|
| 插件 | `plugins/` | |
||||
|
| 静态资源/上传 | `public/static/`、`public/storage/` | |
||||
|
| 日志/缓存 | `runtime/` | |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue