yii2框架的安装我们在之前文章中已经提到下面我们开始理解YII2框架
强大的YII2框架网上指南:http://www.yii-china.com/doc/detail/1.html?postid=278或者者
http://www.yiichina.com/doc/guide/2.0
Yii2的应用结构:
目录篇:
advance版本的特点是:根目录下预先分配了三个板块,分别是前端、后端、控制台板块。
1.backend
它主要用于管理后端,网站管理员来管理整个系统。
assets 目录用于存放前台资源包PHP类。 这里不需要理解什么是前台资源包,只需大致知道是用于管理CSS、js等前台资源即可以了。
config 用于存放本应用的配置文件,包含主配置文件 main.php 和全局参数配置文件 params.php 。
models views controllers 3个目录分别用于存放数据模型类、视图文件、控制器类。这个是我们编码的核心,也是我们工作最多的目录。
widgets 目录用于存放少量常用的小挂件的类文件。
tests 目录用于存放测试类。
web 目录从名字可以看出,这是一个对于Web服务器可以访问的目录。 除了这一目录,其余所有的目录不应对Web客户暴露出来。这是安全的需要。
runtime 这个目录是要求权限为 chmod 777 ,即允许Web服务器具备完全的权限, 由于可能会涉及到写入临时文件等。 但是一个目录并未对Web客户可见。也就是说,权限给了,但是并不是Web客户可以访问到的。
2.frontend
我们的目标最终客户提供的主要接口的前台应用。其实,前端和后端是一样的,只是我们逻辑上的一个划分.。
好了,现在问题来了。对于 frontend backend console 等独立的应用而言, 他们的内容放在各自的目录下面,他们的运作必然用到Yii框架等 vendor 中的程序。 他们是如何关联起来的?这个秘密,或者者说整个Yii应用的目录结构的秘密, 就包含在一个传说中的称为入口文件的地方。
<?phpdefined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/../../common/config/bootstrap.php');
require(__DIR__ . '/../config/bootstrap.php');
$config = yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../common/config/main.php'),
require(__DIR__ . '/../../common/config/main-local.php'),
require(__DIR__ . '/../config/main.php'),
require(__DIR__ . '/../config/main-local.php'));
$application = new yii\web\Application($config);$application->run();
3.console
控制台应用程序包含系统所需要的控制台命令的。
下面是全局公共文件夹
4.common
其中:
config 就是通用的配置,这些配置将作用于前后端和命令行。
mail 就是应用的前后端和命令行的与邮件相关的布局文件等。
models 就是前后端和命令行都可能用到的数据模型。 这也是 common 中最主要的部分。
公共的目录(Common)中包含的文件用于其它应用程序之间共享。例如,每一个应用程序可能需要访问该数据库的使用 ActiveRecord。因而,我们可以将AR模型类放置在公共(common)的目录下。同样,假如在多个应用程序中使用了少量辅助(helper )或者部件类(widget ),我们也应该把这些放置在公共目录(common)下,以避免重复的代码。
正如我们将很快解释,应用程序也可以共享一部分的共用配置。因而,我们还可以存储config目录下共同的常见配置。
当开发一个大型项目开发周期长,我们需要不断调整数据库结构。出于这个起因,我们还可以使用数据库迁移(DB migrations )功能来保持跟踪数据库的变化。我们将所有 DB migrations(数据库迁移)目录同样都放在公共(common)目录下面。
5.environment
每个Yii环境就是一组配置文件, 包含了入口脚本 index.php和各类配置文件。 其实他们都放在/environments 目录下面.
从上面的目录结构图中,可以看到,环境目录下有3个东东:
目录 dev
目录 prod
文件 index.php
其中, dev 和 prod 结构相同,分别又包含了4个目录和1个文件:
frontend 目录,用于前端的应用,包含了存放配置文件的 config 目录和存放web入口脚本的web 目录
backend 目录,用于后端应用,内容与 frontend 相同
console 目录,用于命令行应用,仅包含了 config 目录,由于命令行应用不需要web入口脚本, 因而没有 web 目录。
common 目录,用于各web应用和命令行应用通用的环境配置,仅包含了 config 目录, 由于不同应用不可能共用相同的入口脚本。 注意这个 common 的层级低于环境的层级,也就是说,他的通用,仅是某一环境下通用,并非所有环境下通用。
yii 文件,是命令行应用的入口脚本文件。
对于分散于各处的 web 和 config 目录而言,它们也是有共性的。
但凡 web 目录,存放的都是web应用的入口脚本,一个 index.php 和一个测试版本的index-test.php
但凡 config 目录,存放的,都是本地配置信息 main-local.php 和 params-local.php
6.vendor
vendor 。 控制台应用程序包含系统所需要的控制台命令,就是各种第三方的程序。 这是Composer安装的其余程序的存放目录,包含Yii框架本身,也放在这个目录下面。 假如你向composer.json 目录添加了新的需要安装的程序,那么下次调用Composer的时候, 就会把新安装的目录也安装在这个 vendor 下面。
下面也是少量不太常用的文件夹
7.vagrant
8.tests
资料参考于:https://blog.csdn.net/woshihaiyong168/article/details/53018016