# 框架

# 框架目录

StartCMS框架目录与TP目录结构有所不同,StartCMS框架中app目录下仅存放应用文件,每个应用是一个app目录的子目录,不再包含系统公共文件(如全局公共函数文件common.php,全局事件定义文件event.php等)

www  WEB部署目录
├─app                   应用目录
│  ├─app1               应用1
│  ├─app2               应用2
│  ├─app3...            
├─base                  前端基座工程(可移动到任意地方进行前后端分离开发)
├─config                系统配置目录
├─core                  系统核心目录
├─data                  数据存储目录
├─extend                扩展类库目录
├─runtime               应用的运行时目录(可写,可定制)
├─vendor                Composer类库目录
├─web                   前端基座目录(由基座工程目录编译生成)
├─.env.default          环境示例文件
├─.gitignore            Git配置文件
├─.htaccess             Apache配置文件
├─composer.json         Composer配置文件
├─deploy.sh             自动化部署脚本
├─index.php             系统入口文件
├─start                 命令行入口

# 系统目录

StartCMS系统目录是与app目录同级的core目录,系统核心功能如下:

  • 账户管理
    • 系统账户----管理系统内所有账户,包括管理员账户,游客账户,第三方授权账户
    • 角色权限----定义账户角色权限,支持多角色功能授权
    • 组织架构----定义账户所属组织,支持多级数据授权
  • 系统配置
    • 参数配置----管理包括应用在内的所有动态配置,配置项的定义请参考配置说明
    • 权限管理----管理由权限标签自动生成的权限菜单数据,支持自定义权限
    • 地区管理----通用全国行政区域数据库
  • 日志管理
    • 操作日志----所有账户操作日志
    • 运行日志----系统运行日志
  • 应用中心------管理系统所有应用的卸载,安装,升级

一般不需要在app目录下再定义一个admin应用来管理系统

www  WEB部署目录
├─app                   应用目录
├─base                  前端基座
├─config                全局配置
├─core                  系统目录
│  ├─common             系统公共服务目录
│  ├─controller         系统控制器目录
│  ├─installer          系统安装器目录
│  ├─listener           事件监听器目录
│  ├─middleware         全局中间件目录
│  ├─model              系统模型目录
│  ├─route              系统路由目录
│  ├─service            系统服务目录
│  ├─src                前端工程目录
│  ├─view               系统视图目录
│  ├─apidoc.json        apidoc配置文件
│  ├─apidoc.md          apidoc描述文件
│  ├─apidoc.php         apidoc变量声明
│  ├─app.json           系统核心配置文件
│  ├─common.php         全局公共函数文件
│  ├─middleward.php     全局中间件定义文件
│  └─provider.php       服务提供定义文件

# 应用目录

每个应用是一个app目录的子目录(或者指定的composer库),每个应用具有独立的路由、配置,以及MVC相关文件,这些应用可以公用框架核心以及扩展。而且可以支持composer应用加载。

www  WEB部署目录
├─app                   应用目录
│  ├─app1               应用名
│  |  ├─controller         控制器目录
│  |  ├─installer          安装脚本目录(可选,安装卸载时调用)
│  |  ├─facade             应用门面目录(可选,供其他应用调用)
│  |  ├─middleware         中间件目录(可选)
│  |  ├─model              模型目录
│  |  ├─route              路由目录(可选)
│  |  ├─service            服务目录
│  |  ├─src                前端工程目录(可分离)
│  |  ├─subscribe          事件订阅目录(可选)
│  |  ├─view               视图目录
│  |  ├─apidoc.json        apidoc配置文件(可选)
│  |  ├─apidoc.md          apidoc描述文件(可选)
│  |  ├─apidoc.php         apidoc变量声明(可选)
│  |  ├─app.json           应用描述文件(必须)
│  |  ├─common.php         应用公共函数文件(可选)
│  |  ├─middleward.php     应用中间件定义文件(可选)
│  |  └─event.php          应用事件定义文件(可选)
│  │
│  ├─app2...            更多应用

# 应用描述

注意

每个应用目录下都需要一个应用描述文件app.json,不然系统无法识别安装该应用

一个最小有效的应用描述文件如下

{
  "icon": "",         // 应用图标
  "name": "",         // 应用标识(英文,与目录同名)
  "entry": "",        // 应用入口(输出html的url地址)
  "title": "",        // 应用名称(中文,2-4个中文字符)
  "summary": "",      // 应用简介(一句话介绍应用功能)
  "description": "",  // 应用描述(富文本应用描述,支持MarkDown)
  "version": "v1.0.0",// 版本号
  "category": [],     // 分类
  "licence": "",      // 协议
  "author": "",       // 作者
  "dependencies": [], // 应用依赖(其他应用标识)
  "startcms": {       // 框架版本
    "min-version": "v1.0.0", // 框架最低版本
    "max-version": "v1.0.2" // 框架最高版本 
  }
}

一个完整的应用描述文件如下

{
  "icon": "",         // 应用icon
  "name": "",         // 应用标识(英文,与目录同名)
  "entry": "",        // 应用入口(输出html的url地址)
  "dev_entry": "",    // 应用调试入口(应用开启调试后生效)
  "ssr": false,       // ssr模式(后端渲染模式)
  "debug": false,     // 调试模式(可以在应用管理中动态设置)
  "sandbox": true,    // js沙箱隔离(禁用沙箱可能会导致一些不可预料的问题,通常情况不建议这样做。)
  "scopecss": true,   // css样式隔离(禁用样式隔离可以提升页面渲染速度,在此之前,请确保各应用之间样式不会相互污染。)
  "title": "",        // 应用名称(中文,2-4个中文字符)
  "summary": "",      // 应用简介(一句话介绍应用功能)
  "description": "",  // 应用描述(富文本应用描述,支持MarkDown)
  "version": "v1.0.0",// 版本号
  "category": [],     // 分类
  "licence": "",      // 协议
  "author": "",       // 作者
  "documentation": {  // 手册
    "user": "",       // 使用者手册
    "admin": "",      // 管理者手册
    "developer": ""   // 开发者手册
  },
  "dependencies": [], // 应用依赖(其他应用标识)
  "startcms": {
    "min-version": "v1.0.0", // 框架最低版本
    "max-version": "v1.0.2"  // 框架最高版本 
  },
  "auth": [                  // 自定义权限节点
    {
        "app": "",               // 应用标识(可选,默认当前应用)
        "icon": "",              // 菜单图标(可选)
        "name": "core_account",  // 权限标识(英文,小写字母开头+下划线)
        "title": "账户管理",      // 权限名称(中文,菜单/功能名称)
        "parent": "core",        // 上级节点
        "node": "core/account",  // 权限节点(后端路由)
        "path": "/core/account", // 权限路径(前端路由)
        "view": "",              // 视图模板
        "params": "",            // 路由参数
        "redirect": "",          // 跳转地址
        "menu": 1,               // 是否为菜单
        "auth": 1,               // 是否权限控制
        "admin": 0,              // 是否仅限管理员访问
        "super": 0,              // 是否仅限超管员访问
        "route": 0,              // 是否仅作前端路由(有无权限都返回)
        "status": 1,             // 启用状态
        "cache": 0,              // 启用缓存
        "sort": 7,               // 排序
    }
  ],          
  "config": [                    // 应用可配置项目(具体参数可参考form-create表单项)
    {
        "group": "站点配置",      // 配置分组
        "title": "站点名称",      // 配置名称
        "type": "input",         // 配置类型
        "field": "title",        // 字段名称(确保同一应用内唯一)
        "value": "StartCMS",     // 字段值
        "options": [],           // 配置选项
        "validate": [],          // 验证规则
        "props": {},             // 配置属性
        "default": "",           // 默认值
        "remark": "",            // 备注
        "locking": 1,            // 是否锁定(禁止编辑更新)
        "protected": 0           // 是否保护(前端无法获取)
    }
  ]
}
上次更新: 2/1/2023, 6:46:28 PM