架构
架构总览
FastAdmin基于MVC的设计模式,将我们的应用分为三层(模型M、视图V、控制器C)。
目录结构
FastAdmin目录结构遵循ThinkPHP5官方建议的模块设计:
FastAdmin项目目录
├── addons //插件存放目录
├── application //应用目录
│ ├── admin //后台管理应用模块
│ ├── api //API应用模块
│ ├── common //通用应用模块
│ ├── extra //扩展配置目录
│ ├── index //前台应用模块
│ ├── build.php
│ ├── command.php //命令行配置
│ ├── common.php //通用辅助函数
│ ├── config.php //基础配置
│ ├── database.php //数据库配置
│ ├── route.php //路由配置
│ ├── tags.php //行为配置
├── extend
│ └── fast //FastAdmin扩展辅助类目录
├── public //框架入口目录
│ ├── assets
│ │ ├── addons //插件前端资源目录
│ │ ├── build //打包JS、CSS的资源目录
│ │ ├── css //CSS样式目录
│ │ ├── fonts //字体目录
│ │ ├── img //图片资源目录
│ │ ├── js
│ │ │ ├── backend //后台功能模块JS文件存放目录
│ │ │ └── frontend //前台功能模块JS文件存放目录
│ │ ├── libs //Bower资源包位置(只读,通过 bower 更新)
│ │ └── less //Less资源目录
│ └── uploads //上传文件目录
│ ├── index.php //应用入口主文件
│ ├── install.php //FastAdmin安装引导(安装完成后会自动删除)
│ ├── admin.php //后台入口文件(自动安装后会被修改为随机文件名)
│ ├── robots.txt
│ └── router.php
├── runtime //缓存目录
├── thinkphp //ThinkPHP框架核心目录(只读,通过 composer 更新)
├── vendor //Compposer资源包位置(只读,通过 composer 更新)
├── .bowerrc //Bower目录配置文件
├── .env.sample //环境配置模板(可复制一份为 .env 生效)
├── LICENSE
├── README.md //项目介绍
├── bower.json //Bower前端包配置
├── build.php
├── composer.json //Composer包配置
└── think //命令行控制台入口(使用 php think 命令进入)
应用模块
在FastAdmin中默认有四个应用模块:common、admin、index、api,你也可以扩展开发自己的应用模块。
后台模块(admin)是FastAdmin中的核心模块,后台模块又分为系统配置、附件管理、插件管理等多个功能模块,更多的功能模块可以在插件管理中自由的安装和卸载。
后台的前端是基于AdminLTE和Bootstrap进行了大量二次开发,采用RequireJS进行JS模块化管理和加载。
前台模块(index)的结构和后台功能类似,具体请参考后台模块的章节。
公共模块(common)是一个特殊的模块,默认是禁止直接访问的,一般用于放置一些公共的类或其它模块的继承基类等。
Api 模块(api)通常用于对接APP或小程序,用于向APP或小程序提供接口,具体 api 代码编写可以直接参考ThinkPHP5官方的文档,api 文档可以通过命令行生成,详细请参看 一键生成API文档 章节。
功能模块
功能模块指后台管理中的功能模块,比如我们的系统配置、附件管理、分类管理(分类管理在新版中默认隐藏,可自行在权限管理中打开)。
后台开发的每一个功能模块都是基于MVC的设计模式进行开发 。在FastAdmin中,我们提供了一键生成CRUD的功能,这个一键生成CRUD生成的文件也就是我们标准的MVC文件。
以下是一个标准的功能模块所涉及到的文件
├── application
│ └── admin
│ ├── controller
│ │ └── Test.php //控制器类
│ ├── lang
│ │ └─ zh-cn
│ │ └── test.php //功能语言包,按需加载
│ ├── model
│ │ └── Test.php //模型类
│ ├── validate
│ │ └── Test.php //验证器类
│ └── view
│ └── test
│ ├── index.html //列表视图
│ ├── add.html //添加视图
│ ├── edit.html //编辑视图
│ └── recyclebin.html //回收站视图
└── public
└── assets
└── js
└── backend
└── test.js //功能模块JS文件在FastAdmin中每一个功能模块至少对应一个功能模块JS文件,也就是说每一个控制器都对应一个同名的JS文件,其次每一个控制器的方法对应JS文件中同名的方法。
具体控制器详细介绍可参考控制器章节,JS的部分可以参考前端章节。