更新 README 文档,替换为 GeneAgro CMS 使用说明

This commit is contained in:
2025-10-19 12:26:01 +08:00
parent b8286157ac
commit a9bcfce8d8
7 changed files with 398 additions and 90 deletions

40
doc/API.md Normal file
View File

@@ -0,0 +1,40 @@
# GeneAgro CMS API 使用与认证说明
开启与配置
- 后台系统配置页提供 WebAPI 设置:
- api_open是否开启接口能力
- api_auth是否开启签名认证建议开启
- api_appid接口用户名
- api_secret接口密钥。
认证机制
- 时间戳与签名:
- 传参appid、timestamp、sign
- 有效期timestamp 在 15 秒内有效;
- 生成sign = md5( md5( appid + secret + timestamp ) )
- 当 api_auth=1 且校验失败时,接口拒绝访问。
- 示例PHP 生成签名):
```php
$appid = 'YOUR_APPID';
$secret = 'YOUR_SECRET';
$ts = time();
$sign = md5(md5($appid . $secret . $ts));
$url = "https://your-domain/api/list?appid={$appid}&timestamp={$ts}&sign={$sign}";
```
内置接口apps/common/route.php
- list内容列表
- content单条内容
- about关于信息
- search内容搜索
- 具体字段取决于模型层实现,实际项目可扩展 apps/api 以提供自定义数据结构。
调用建议
- 使用 HTTPS
- 发起端与服务端时间同步;
- 控制速率与并发,对搜索与列表类接口做分页与缓存(如 Memcache
错误与排查
- 403/认证失败:检查 appid/secret 与签名算法,确认时间戳是否过期;
- 404/路由不存在:检查 apps/common/route.php 与 config/route.php 是否定义;
- 500/内部错误:查看 log/ 文本日志或 ay_syslog 数据库日志,定位模型/控制器异常。

61
doc/Architecture.md Normal file
View File

@@ -0,0 +1,61 @@
# GeneAgro CMS 架构与目录说明
总体概览
- 项目基于 PbootCMS 内核按“前台Home/后台Admin/接口API/公共Common/核心Core”五层组织。
- 入口文件:
- index.php前台入口。
- iotadmin.php后台入口。
- api.php接口入口。
- 初始化:入口文件加载 core/init.php完成常量定义、错误处理、自动加载、环境校验与会话初始化。
核心目录与职责
- apps/home前台控制器与模型负责页面展示与内容读取。
- apps/admin后台控制器、模型与视图用于系统配置、内容管理、会员管理等。
- apps/api接口层如需扩展或新增接口建议在此目录组织
- apps/common公共控制器AdminController、HomeController、ApiController、公共路由route.php与版本信息。
- core/basic框架基础能力Controller/Model/Db/Cache/Log/Config/Kernel/Response 等)。
- core/function通用函数库helper/handle/file
- core/log日志实现数据库与文本
- core/view模板视图与解析器。
- config项目级配置config.php、database.php、route.php
- template/default默认主题与静态资源Bootstrap/JS/CSS
- rewrite伪静态规则示例Apache/Nginx/IIS
加载与路由
- 自动加载core/basic/Basic.php::autoLoad。
- 支持框架类、应用类与命名空间类加载。
- 路由apps/common/route.php 定义系统主路由,包括:
- 后台admin/system、admin/content、admin/member。
- 前台sitemap。
- 接口api/list、api/content、api/about、api/search。
- 可在 config/route.php 中做项目级路由扩展或覆盖。
控制器与视图
- 基类core/basic/Controller.php。
- display/parser模板解析与输出支持 gzip 压缩与运行时统计。
- assign/getVar模板变量注入与获取。
- cache页面缓存可选
- log统一日志写入支持 db/text
- 视图引擎core/view/*Parser/View支持主题与变量替换。
会话与缓存
- 会话Basic::setSessionHandler默认文件存储支持 Memcache需安装扩展并配置
- 缓存core/cache/*Memcache 驱动可选(需启用扩展与配置)。
日志
- 文本日志core/log/LogText.php日志文件位于 log/ 下,按日归档。
- 数据库日志core/log/LogDb.php写入 ay_syslog 表字段level、event、ip、os、bs、user、time
- 控制器内通过 $this->log(...) 或 Controller::log(...) 写入。
文件与上传
- 文件/目录core/function/file.php 提供创建、检测、复制、列表、删除等工具函数。
- 上传upload() 支持格式校验、尺寸限制与水印(配合配置项使用)。
版本与配置覆盖
- 默认配置core/convention.php。
- 应用配置覆盖config/config.php 与 config/route.php。
- 版本apps/common/version.phpapp_version=3.2.5)。
扩展与集成
- core/extend二维码、Excel、腾讯云 COS、Ueditor 等扩展。
- core/weixin微信相关 SDK网页授权、模板消息、JS-SDK 等)。

27
doc/CHANGELOG_template.md Normal file
View File

@@ -0,0 +1,27 @@
# 变更日志模板(示例)
说明
- 建议采用语义化、分门别类记录每次发布的变化,便于回溯与审核。
- 分类Added新增、Changed变更、Fixed修复、Removed移除、Security安全
Unreleased
- Added
- Changed
- Fixed
- Security
3.2.5 - 2023-04-21
- Added升级核心至 3.2.5;新增/调整部分系统配置项。
- Changed优化接口签名与时效校验ApiController
- Fixed兼容性与稳定性修复若干。
3.2.x - 2023-XX-XX
- Added
- Changed
- Fixed
记录规范
- 每次发布必须记录版本号、日期与核心变化;
- 所有文件/接口/配置的破坏性变更需在 \"Changed\" 或 \"Removed\" 中明确标注;
- 安全相关修复应在 \"Security\" 分类中突出说明与影响范围;
- 建议附上迁移指南(如有数据库结构或配置项变化)。

49
doc/Deployment.md Normal file
View File

@@ -0,0 +1,49 @@
# GeneAgro CMS 部署与重写规则指南
环境准备
- PHP7.0 及以上(建议 7.17.4),启用 gd、mbstring、curl、mysqli 扩展。
- Web 服务器Nginx/Apache/IIS 均可,需开启伪静态/URL 重写。
- 时区与编码:建议在 php.ini 中设置 date.timezone=Asia/Shanghai确保输出编码为 UTF-8。
目录权限
- 需写入权限runtime、log、static/upload、data 等目录。
- 生产环境最小化权限:仅赋予必要写入目录权限,其他目录只读。
重写规则示例
- Nginx参考 rewrite/nginx.txt
- 典型配置:
- location / { try_files $uri $uri/ /index.php?$args; }
- 后台入口保持直达:/iotadmin.php。
- Apache参考 rewrite/.htaccess
- 典型配置:
- RewriteEngine On
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule . index.php [L]
- IIS参考 rewrite/web.config
- 使用 URL Rewrite 组件导入 web.config 配置。
应用入口与路由
- 前台入口index.php。
- 后台入口iotadmin.php。
- API 入口api.php。
- 路由apps/common/route.php系统内置config/route.php项目覆盖与扩展
部署流程建议
1) 上传代码至站点目录,确认 PHP 版本与扩展;
2) 配置数据库config/database.php与站点参数config/config.php
3) 设置伪静态规则(参考 rewrite 目录);
4) 访问后台 iotadmin.php 完成站点与 API 配置;
5) 验证前台与 API 可用性;
6) 关闭调试模式core/convention.php 中 debug=false开启必要的日志与监控。
安全加固
- HTTPS建议强制 HTTPS尤其是后台与 API 访问)。
- 会话安全启用仅站点路径会话session_in_sitepath=true合理设置 Cookie 参数HttpOnly、Secure
- 访问控制:按需配置 access_rule.*(限制特定浏览器/操作系统)。
- 文件上传:限制格式与尺寸,开启水印(如有需求),对上传目录做执行权限隔离(不允许脚本执行)。
性能与运维
- 缓存:根据业务开启 Memcachecache.handler=memcache
- 日志:生产环境建议使用数据库日志,并按周期归档;或文本日志按日切割并外采。
- 备份:数据库定时备份,日志与上传文件定期打包与远端归档。

48
doc/Infrastructure.md Normal file
View File

@@ -0,0 +1,48 @@
# GeneAgro CMS 基础设施使用说明(数据库/缓存/日志/上传)
数据库
- 配置文件config/database.php。
- 主要参数type=\"mysqli\"host、user、passwd、port、dbname、prefix默认 ay_、charsetutf8
- 事务:可在 core/convention.php 中配置 database.transaction。
- 使用建议:
- 为 ay_syslog系统日志表创建必要索引如 time、level
- 生产环境开启最小化权限账号(仅当前库权限)。
缓存与会话
- 会话存储:默认文件。
- 切换为 Memcache在 core/convention.php 设置 session.handler=\"memcache\",并配置 session.path 与 cache.serverhost:port
- 注意事项:
- 需要安装 PHP memcache 扩展;确保 Memcache 服务可用。
- Basic::setSessionHandler 中会话路径键名为 \"seesion.path\"(存在拼写问题)。若启用 Memcache 会话,请在 config/config.php 中使用 \"seesion.path\" 键进行覆盖,或修复 Basic.php 将其改为 \"session.path\"。
- 缓存core/cache/*。
- Memcache 驱动:通过 cache.handler=\"memcache\" 启用。
- 适用场景:热点数据、配置缓存、列表页缓存等。
日志
- 配置core/convention.php 中 log_record_type\"db\" 或 \"text\")。
- 文本日志:
- 位置log/ 目录按日期分文件YYYYMMDD.log
- 字段level、content、ip、os、bs、user、time。
- 数据库日志:
-ay_syslog通过 core/log/LogDb.php 写入)。
- 字段level、event、ip、os、bs、user、time。
- 写入方式:控制器中使用 $this->log($level, $content) 或 Controller::log(...)。
上传与水印
- 入口函数core/function/file.php::upload。
- 配置项:
- upload.format允许上传的扩展名列表如 jpg|png|gif|bmp|jpeg
- upload.max_width / upload.max_height最大尺寸限制。
- ico.max_width / ico.max_height缩略图尺寸限制。
- 水印:在后台系统配置开启后,上传函数执行水印处理(需 GD 扩展)。
- 存储路径:默认 static/upload/image/ 下(可按业务自定义与扩展)。
安全与合规
- 访问控制core/convention.php 的 access_rule.* 可限制特定浏览器或操作系统访问。
- 会话安全建议开启仅站点路径会话session_in_sitepath=true并启用 HttpOnly 与 Secure按站点 HTTPS 情况设置)。
- 文件权限:确保 runtime、log、static/upload、data 等目录具备写入权限;生产环境最小化权限策略。
运维建议
- 定期归档日志:按日/周归档 text 日志或对 ay_syslog 做清理策略。
- 数据库备份static/backup/sql 可存放备份脚本,建议配合定时任务与远程备份。
- 性能优化:合理使用 Memcache长列表页可结合分页与缓存降低数据库压力。