框架结构
框架结构
概述
Yii 2 高级项目模板是一个最基本的 Yii 2 应用程序,用于开发具有多层的复杂的 Web 应用程序。
模板包括三个层:前台,后台和控制台,每个都是单独的 Yii 应用程序。该模板设计用于在团队开发环境中工作,它支持在不同环境(development
、production
和 test
)中部署应用程序。它还有一些其他功能,并提供了必要的开箱即用的数据库操作,注册和重置密码等功能。
模板目录
应用中最重要的目录和文件(假设应用根目录是 advanced
):
advanced/ 应用根目录
backend/ 后台应用
assets/ 后台的前端资源包配置
config/ 后台配置
controllers/ 后台控制器类
models/ 后台模型类
runtime/ 后台运行时生成的文件,例如日志、缓存等
tests/ 后台测试相关
views/ 后台的视图文件
web/ 后台 Web 应用根目录,包含 Web 入口文件
assets/ 后台 Yii 发布的资源文件(js、css等)
index.php 后台应用入口文件
common/ 公共目录
config/ 公共配置
fixtures/ 公共测试夹具
mail/ 公共邮箱模板
models/ 公共模型类
tests/ 公共测试相关
widgets/ 公共前端小部件
console/ 控制台应用
config/ 控制台配置
controllers/ 控制台控制器类
migrations/ 控制台数据库迁移目录
models/ 控制台模型类
runtime/ 控制台运行时生成的文件,例如日志、缓存等
environments/ 环境配置
dev/ 开发环境 init 时,自动写入的文件集
prod/ 生成环境 init 时,自动写入的文件集
index.php 本地于特定环境的文件清单
frontend/ 前台目录(参考backend)
vagrant/ 虚拟机相关配置
vendor/ 已经安装的 Composer 包,包括 Yii 框架
composer.json Composer 配置文件, 描述包信息
.gitignore git 版本系统忽略的目录列表
init 初始化脚本
init.bat 初始化脚本(Windows)
LICENSE.md 许可信息,把你的项目许可证放到这里,特别是开源醒目
README.md 安装模板的基本信息。可将其替换为有关您的项目及其安装的信息
requirements.php 安装使用 Yii 需求检查器
yii.bat Yii命令行引导脚本(Windows)
与基本模板区别
下表比较了高级项目模板和基本项目模板之间的区别:
特性 | 基本项目模版 | 高级项目模版 |
---|---|---|
项目结构 | ✓ | ✓ |
Site controller | ✓ | ✓ |
用户 登录/退出 | ✓ | ✓ |
表单 | ✓ | ✓ |
数据库链接 | ✓ | ✓ |
命令行操作 | ✓ | ✓ |
资源包 | ✓ | ✓ |
代码测试 | ✓ | ✓ |
Bootstrap | ✓ | ✓ |
前台 以及 后台 应用 | ✓ | |
使用用户模型 | ✓ | |
用户注册以及密码重置 | ✓ |
预定义路径别名
@yii
- 框架目录。@app
- 当前运行的应用程序的基本路径。@common
- 公共目录。@frontend
- 前台 Web 应用程序目录。@backend
- 后台 Web 应用程序目录。@console
- 控制台目录。@runtime
- 当前正在运行的Web应用程序的 runtime 目录。@vendor
- Composer vendor 目录.@bower
- vendor 目录下的 bower packages.@npm
- vendor 目录下的 npm packages.@web
- 当前运行的Web应用程序的 base URL。@webroot
- 当前运行的Web应用程序的 web 根目录。
特定于高级应用程序的目录结构的别名
(@common
, @frontend
, @backend
, 以及 @console
) 在 common/config/bootstrap.php
文件中定义.
应用程序概述
高级模板中内置有 3 个应用程序:前台(frontend
),后台(backend
)和控制台(console
)。
- 前台:通常是呈现项目本身到最终用户,也是业务中常说的 C 端。
- 后台:通常是一个管理面板或者 CMS ,用来做分析和其他诸如此类的功能。
- 控制台:通常用于 Linux 中的 cron(计划任务)作业脚本和低级服务器管理,它也在应用程序部署期间使用,并处理 migrate(数据迁移)和资源包等。
还有一个 common
目录,其中包含多个应用程序使用的文件。 例如,User
Model。
前台和后台都是 Web 应用程序,并且都包含 web
目录,这个目录就是 web 服务器要映射域名的目录。
每个应用程序都有自己的命名空间和别名对应其名称。这同样适用于公共目录。
💖喜欢本文档的,欢迎点赞、收藏、留言或转发,谢谢支持!
作者邮箱:zhuzixian520@126.com,github地址:github.com/zhuzixian520