应用(插件)统一放在 APPSPATH(默认 dayrui/App/)下,每个应用一个首字母大写的目录。

访问 URL 中的 s 对应该目录名的小写形式。必须存在 Config/App.php;安装成功后会生成 install.lock,系统才会加载其 Hooks / Auto 等扩展配置。

标准结构示意

以上为常见完整约定;内置样例可能只含部分目录。

例如本仓库 App/TestConfig + Controllers + Views 为主;App/News 以模块型 Config/App.php 与四方控制器为主。

目录说明

路径是否必需说明
Config/App.php返回应用名称、图标、type(如 module)等;缺失则无法安装
install.lock安装后需要有则视为已安装;卸载时删除。未安装时一般不加载 Hooks/Auto
Controllers/按需命名空间 Phpcmf\Controllers(及 Admin/Member/Api 子空间)
Views/按需应用页面模板,供 Service::V()->display() 使用
Libraries/按需类库目录名必须是 Libraries;通过 Service::L('名', '应用') 调用
Models/按需模型;通过 Service::M('名', '应用') 或 Auto 注册
Config/*.php按需见《配置(App / Auto / Routes / Hooks)》

Config/App.php 示例

命名与保留目录

  • 应用文件夹名:首字母大写的英文,如 NewsTest;URL 中 s=news

  • 以下名称系统保留,不可用作应用目录(Model\App::is_sys_dir):
               membermoduleapiadminhomeindexformcontentcategorylinkagesiteweixin 以及 caseclassextendsnewvarall 等。

与 URL 的对应

开发建议

  • 新建应用时至少准备 Config/App.php 与所需场景的 Controllers

  • 业务类库、模型、菜单、钩子按上表落在应用内,勿写入 Fcms/

  • 安装 / 卸载 SQL 与脚本放 Config/,保证可重复部署。

  • 调试时可参考仓库中 App/Test(结构样板)、App/News(模块型样例)。

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