Yii2 开发 API 教程 [ 新手入门 ]
简介
使用 yii2
进行 API
开发,本文档的目标是以最简便的方式来跑通整个流程,并不纠结很多的细节。
核心概念
- 入口脚本
- 应用
- 应用组件
- 控制器
- 动作
- 模型
请求流程
入口脚本 -> 路由解析 -> 控制器 -> 模型(数据处理)-> 响应
入口脚本
简单的理解,入口脚本就是 index.php
,在配置 web服务器
时,需要将请求导向 index.php
所在的文件夹,在 yii2
框架中,就是 web
文件夹。
应用
举个例子,yii2
框架中的应用,有点类似于工厂中的经理角色,起的是管理调节作用,这也是应用提供的功能(这里说的应用,默认指的是一个应用实例)。应用这个经理管理调节什么?这是下面要说的应用组件。
应用组件
yii2
中,应用组件是框架已经封装好的提供特定功能的一些类,比如 db
,log
。
这些组件在 yii2
中可自定义,可配置。
自定义指的是可以编写自己的功能类,并将其作为一个应用组件配置到框架中使用。可配置意味着灵活多变,可用可不用。
在 yii2
中应用组件配置在什么地方?
看配置文件(如果是接手的项目,可能有很多自定义的配置文件和官方版本稍微不同,本文的说明全部基于官方版本)web.php
中的 components
,components
下的每一键值对都对应一个应用组件,官方文件提供的有 request
,cache
,user
,errorHandler
,mailer
,log
,db
,urlManager
等。
在逻辑中如何使用?
\Yii::$app->db
这样就可以获取对应的应用组件,显然这里的 db
是可以换成其他的应用组件的,比如 request
等。
控制器
入口脚本接收到请求之后,URI
会被路由管理器进行处理,解析出 controller
和 action
这两个最重要的东西,有了这两个值,就能定位该请求所对应的执行逻辑。控制器存放在项目根目录(这里说的项目根目录并不是 index.php 所在目录,而是整个项目的目录)下的 controllers
文件夹中,命名格式是 大驼峰 + Controller后缀
。
动作
在理解上,动作就是类中定义的一个方法,yii2
的控制器中的方法分为两类:动作,普通方法。
动作在命名上有要求,必须要有 action
前缀,比如 actionView
这样。普通方法就是通常意义上的方法。
模型
yii2
中对于模型同样分为两类,一般来讲模型指的是数据模型,用于和数据库进行交互。
yii2
中的两类模型,主要的区分点在于继承的父类是什么。model
的存放目录在项目根目录下的 models
。
class TestEntity extends \yii\base\Model
{
#这是一种类型
}
class Test2 extends \yii\db\ActiveRecord
{
#这是另外一种类型,也称为 AR 模型
}
两者的区别在于普通模型(非AR模型)一般用来装填数据,并不与数据库进行交互。
这是什么意思?
举个例子来说明,你创建了一张用户表,字段有 id,name,age
,那么如果你创建普通模型User
,一般是下面这个样子,一般叫 xxxEntity
class UserEntity extends \yii\base\Model
{
protected $id;
protected $name;
protected $age;
public function getId()
{
return $this->$id;
}
public function setId($id)
{
$this->id = $id;
}
#后面是对其他字段的 get 和 set 操作
...
}
所以说,普通模型其实就是一个架子,一般用来接收请求数据,根据实际情况,选择对应的普通模型,将请求中携带的数据使用 set
方法填充到架子中去,就变成了这个样子
class UserEntity extends \yii\base\Model
{
protected $id = 1;
protected $name = 'lovan';
protected $age = '24';
...
}
这样处理过后的 Entity
会被作为参数传入 AR
模型中,由 AR
模型来接手下一步的 CRUD
相关操作。
共 0 条回复
城里的野山参
最后登录:2020-04-17
在线时长:0小时10分
- 粉丝0
- 金钱10
- 威望0
- 积分10