在整体的代码库只有一个文件夹公开发布到Web服务器。它就是web目录。Web根目录目录之外的其他文件夹Web服务器不可触碰的。
注 - 所有项目依赖位于composer.json文件。Yii2已经由 Composer 几个重要的软件包包含在你的项目中。这些包有以下几种-
-
GII - 代码生成工具
-
调试控制台
-
Codeception测试框架
-
SwiftMailer库
-
Twitter Bootstrap UI库
前三个包只在开发环境中有用。
Yii2的应用程序结构是精确的,明确的。它包含以下文件夹 -
-
assets - 此文件夹包含在网页中引用的所有 .js和.css文件
-
commands - 此文件夹包括可从终端中使用的控制器
-
config - 此文件夹包含配置文件用于管理数据库,应用程序和应用参数
-
mail - 此文件夹包含邮件布局
-
models - 该文件夹包函在应用程序中使用的模型
-
runtime − 此文件夹是用于存储运行时数据
-
tests − 此文件夹包含所有的测试(验收,单元测试,功能)
-
vendor - 此文件夹包含由Composer提供所有的第三方软件包。
-
views − 此文件夹为视图文件夹目录,由控制器显示。layout 文件夹是用于页面模板
-
web − 网站入口点
应用程序结构
以下是应用程序的结构示意图。


Yii2 – 对象
下面的列表包含了所有Yii2的对象 -
模型,视图和控制器
模型数据表示(通常从数据库)。视图是用于显示的数据。控制器是用于处理请求和产生响应。
组件 - Components
创建一个可重复使用的功能,用户可以编写自己的组件。组件只是包含逻辑对象。例如,组件可以是一个重量转换器。
应用程序组件 - Application components
这些都是在整个应用只实例化的一个对象。 组件和应用组件之间的主要区别是,后者在整个应用程序只有一个实例。
小工具 - Widgets
Widget是含有逻辑和渲染代码可重用的对象。一个小部件可以是,例如,一个画廊滑块。
过滤器 -Filters
过滤器是在控制器动作的执行之前或之后运行的对象。
模块 - Modules
可以认为模块就是可重用的子应用程序,包括模型,视图,控制器等等。
扩展 - Extensions
扩展是可以由 Composer 来管理的软件包。