迅睿系统基于 MVC 的设计模式,将应用分为三层:模型 M(Model)、视图 V(View)、控制器 C(Controller)。业务逻辑、数据访问与页面展示相互分离,便于维护和扩展。

MVC 与目录对应

层级职责核心目录应用目录
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 分层目录

目录角色是否可改
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.phpConfig/Routes.php,或站点 config/hooks.phpconfig/rewrite.php

类查找顺序一般为:当前应用 → My → 核心。只要把代码放在正确目录,即可在不改 Fcms 的前提下完成大多数二次开发。

本文地址:https://m.xunruicms.com/doc/1471.html