应用(插件)统一放在 APPSPATH(默认 dayrui/App/)下,每个应用一个首字母大写的目录。
访问 URL 中的 s 对应该目录名的小写形式。必须存在 Config/App.php;安装成功后会生成 install.lock,系统才会加载其 Hooks / Auto 等扩展配置。
以上为常见完整约定;内置样例可能只含部分目录。
例如本仓库 App/Test 以 Config + 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)》 |
应用文件夹名:首字母大写的英文,如 News、Test;URL 中 s=news。
以下名称系统保留,不可用作应用目录(Model\App::is_sys_dir):
member、module、api、admin、home、index、form、content、category、linkage、site、weixin 以及 case、class、extends、new、var、all 等。
新建应用时至少准备 Config/App.php 与所需场景的 Controllers。
业务类库、模型、菜单、钩子按上表落在应用内,勿写入 Fcms/。
安装 / 卸载 SQL 与脚本放 Config/,保证可重复部署。
调试时可参考仓库中 App/Test(结构样板)、App/News(模块型样例)。