1,basic
和advanced
的区别:adavanced
随包自带两个应用:前台应用 frontend
和后台应用 backend
;basic
中只有一个应用 web
。advanced
将前台和后台分开,方便开发者直接基于这两个应用搭建有前后台的完整网站,并且可以为前后台分别绑定不同域名。所以,advanced
比 basic
稍微复杂一点,不适合新手,适合学过yii的。
2,安装:
1)composer安装:
composer create-project --prefer-dist yiisoft/yii2-soft-basic yii_basic
(basic版本)
composer create-project --prefer-dist yiisoft/yii2-app-advanced yii_advanced
(advanced版本)
2)归档(安装包)安装
归档下载地址:https://www.yiiframework.com/download
左侧为basic版本,右侧为advanced版本
下载完成解压后放于web目录即可
3,安装完成测试(我这边将两个都下载放在web目录下了,basic
版本的文件夹为 yii_basic
,advanced
版本的文件夹为 yii_advanced
):
注:如果是通过下载安装包文件安装,并且版本为 basic
的话,需要修改 web/web.php
文件中如下内容:
// !!! 在下面插入一段密钥(若为空) - 以供 cookie validation 的需要
'cookieValidationKey' => '在此处输入你的密钥',
basic版本访问方法:
http://localhost/yii_basic/web
advanced版本访问(注意如果通过composer下载安装,则需要在下载完成后进入项目目录,执行以下代码: windows - init
; linux - ./init
):
http://localhost/yii_advanced/frontend/web 前台
http://localhost/yii_advanced/backend/web 后台
4,Yii请求生命周期
1)用户向入口文件:web/index.php
发起请求
2)入口脚本加载应用配置,并创建一个应用实例去处理请求
3)应用通过请求组件解析请求的路由
4)应用创建一个控制器实例去处理请求
5)控制器创建一个动作实例并针对操作执行过滤器
6)如果任何一个过滤器操作失败,则动作取消
7)如果所有过滤器都通过,则动作将被执行
8)动作会加载数据模型,或许来自数据库
9)动作会渲染视图,把数据模型提供给他
10)渲染结果返回给响应组件
11)响应组件发送渲染结果给浏览器
5,yii中,使用 action
前缀来区分操作和普通方法。action
前缀后面的名称被映射为操作的ID。
6,创建控制器(SayController):
<?php
namespace app\controllers;
use yii\web\Controller;
class SayController extend Controller{
public function actionIndex($message='hello'){
$this->render('index',['message'=>$message]);
}
}
其中,$this->render
用来渲染一个名为 index
的视图,message
也被作为参数传入视图
7,创建视图:视图应该存为 views/say/index.php
。如果调用了 render()
方法,则会按照 views/控制器名/视图名.php
来加载PHP文件
8,访问方式(此处我将web根目录修改为了:www/yii_basic/web
):
http://localhost/index.php?r=say/index&message=hello+world
9,yii\base\Model
用于普通模型类的父类,并与数据表无关,yii\db\ActiveRecord
通常是普通模型类的父类,但与数据表有关