# 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.php（app_version=3.2.5）。

扩展与集成
- core/extend：二维码、Excel、腾讯云 COS、Ueditor 等扩展。
- core/weixin：微信相关 SDK（网页授权、模板消息、JS-SDK 等）。