迅睿系统基于 MVC 的设计模式,将应用分为三层:模型 M(Model)、视图 V(View)、控制器 C(Controller)。业务逻辑、数据访问与页面展示相互分离,便于维护和扩展。
| 层级 | 职责 | 核心目录 | 应用目录 |
|---|---|---|---|
| C 控制器 | 接收请求、调度业务、输出结果 | dayrui/Fcms/Control/(含 Admin、Api) | dayrui/App/{应用}/Controllers/ |
| M 模型 | 数据读写、业务数据封装 | dayrui/Fcms/Model/、dayrui/Fcms/Core/Model.php | 应用内模型(可由 Config/Auto.php 注册) |
| V 视图 | 页面模板与展示 | 后台:dayrui/Fcms/View/;前台主题:template/ | dayrui/App/{应用}/Views/(及主题目录下应用模板) |
此外,类库 Library/、字段 Field/、助手函数等属于 MVC 周边能力,通过 \Phpcmf\Service 被控制器与模型调用,一般不单独算作第四层,但开发时同样需遵守目录约定。
| 目录 | 说明 |
|---|---|
public/ | Web 运行目录(DocumentRoot),入口文件、静态资源、上传目录 |
dayrui/ | 程序主目录:System、Fcms、App、My |
config/ | 站点级公共配置(伪静态、钩子、Redis 等) |
cache/ | 缓存与运行时数据(须可写) |
template/ | 前台主题模板根目录 |
| 目录 | 角色 | 是否可改 |
|---|---|---|
dayrui/System/ | 底层运行时(数据库、缓存、引导等) | 禁止修改 |
dayrui/Fcms/ | 业务核心(Control / Model / View / Library / Field) | 禁止修改、禁止新建 |
dayrui/App/ | 应用(插件)存放目录 | 可改(按应用契约开发) |
dayrui/My/ | 二次开发覆盖层(菜单、视图、类库、字段等) | 可改(推荐的二次开发位置) |
禁止改:dayrui/Fcms/、dayrui/System/。改动会导致升级困难和系统不稳定。
推荐改:dayrui/My/。用于覆盖视图、扩展 Library / Field / Helper、调整菜单与版本信息等。
业务扩展:新建或维护 dayrui/App/{应用名}/,放置 Controllers、Views、Config 等。
主题与配置:前台改 template/;站点配置改 config/(注意备份)。
缓存目录:cache/ 需可写;其中 cache/config/ 等关键运行配置不可随意删除,清空其它缓存子目录前请先确认影响。
覆盖后台页面:优先放 dayrui/My/View/
扩展类库 / 字段:dayrui/My/Library/、dayrui/My/Field/
新业务控制器:放在应用的 Controllers/(可按 Admin、Member、Api 分子目录)
钩子与路由:应用内 Config/Hooks.php、Config/Routes.php,或站点 config/hooks.php、config/rewrite.php
类查找顺序一般为:当前应用 → My → 核心。只要把代码放在正确目录,即可在不改 Fcms 的前提下完成大多数二次开发。