框架结构

未匹配的标注

框架结构

概述

Yii 2 高级项目模板是一个最基本的 Yii 2 应用程序,用于开发具有多层的复杂的 Web 应用程序。

模板包括三个层:前台,后台和控制台,每个都是单独的 Yii 应用程序。该模板设计用于在团队开发环境中工作,它支持在不同环境(developmentproductiontest)中部署应用程序。它还有一些其他功能,并提供了必要的开箱即用的数据库操作,注册和重置密码等功能。

模板目录

应用中最重要的目录和文件(假设应用根目录是 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

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
zhuzixian520
讨论数量: 0
发起讨论 只看当前版本


暂无话题~