目录
- 安装
- 配置
- 第一个API
- API风格
- 返回一些数据
- 其他
有些时候并不需要使用全套的Yii框架,Yii 本身已经是一个微框架了。
这里可以参考官方:Yii 2.0 权威指南 - 使用 Yii 作为微框架
安装
这部分与 Yii 官方文档无异。
- 新建一个工作文件夹,暂且命名为
micro-app
- 在该文件夹下新建
composer.json
文件:{ "require": { "yiisoft/yii2": "~2.0.0" }, "repositories": [ { "type": "composer", "url": "https://packagist.laravel-china.org" } ] }
请注意这里的
url
,composer 官方库是https://asset-packagist.org
,因为墙的原因,国内访问速度较慢,因此替换为以上 laravel-china 搭建的库。 - 运行
composer install
命令(Windows下是composer.bat install
) - 搭建项目结构,在该文件夹下分别新建
web
、controllers
、models
文件夹,结构与 Yii 基础版类似。web
文件夹作为可访问目录使用,里面放入入口文件index.php
:<?php // comment out the following two lines when deployed to production defined(‘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‘); $config = require __DIR__ . ‘/../config.php‘; (new yii\web\Application($config))->run();
- 新建配置文件,在
micro-app
目录下新建config.php
文件:<?php return [ ‘id‘ => ‘micro-app‘, // the basePath of the application will be the `micro-app` directory ‘basePath‘ => __DIR__, // this is where the application will find all controllers ‘controllerNamespace‘ => ‘micro\controllers‘, // set an alias to enable autoloading of classes from the ‘micro‘ namespace ‘aliases‘ => [ ‘@micro‘ => __DIR__, ], ];
于是你有了如下的文件结构:
micro-app/
├── composer.json
├── config.php
├── web/
└── index.php
├── models/
└── controllers/
配置
在 config.php
中编写配置信息(可参考Yii基础版或高级版,是一样的):
‘components‘ => [
// 数据库:
// 使用mysql数据库,数据库地址是localhost,使用的库是cms
// 数据库用户名:root,密码:123456
‘db‘ => [
‘class‘ => ‘yii\db\Connection‘,
‘dsn‘ => ‘mysql:host=localhost;dbname=cms‘,
‘username‘ => ‘root‘,
‘password‘ => ‘123456‘,
],
// 请求:
// 允许使用JSON格式的请求,并配置JSON解析器
‘request‘ => [
‘parsers‘ => [
‘application/json‘ => ‘yii\web\JsonParser‘,
]
],
// 响应:
// 返回数据的格式为JSON
‘response‘ => [
‘format‘ => ‘json‘,
],
// URL路由:
// 参考官方文档可以对URL进行美化、语义化
// ‘urlManager‘ => [
// ‘enablePrettyUrl‘ => true,
// ‘showScriptName‘ => false,
// ‘enableStrictParsing‘ => true,
// ‘rules‘ => [
// ],
// ],
],
第一个API
API风格
这里的 API 非 restful 风格,而是自定的格式:
{
‘Status‘: 200,
‘Data‘: [],
‘ErrorMessage‘: ‘‘
}
Status
:业务状态码,参考http状态码,200表示成功
Data
:业务数据
ErrorMessage
:错误信息,若无错误则为空
接收 API 数据的一方,在得到响应时,先判断 Status
,若错误应该根据 ErrorMessage
做适当处理。
返回一些数据
1、在 models
文件夹下新建文件 User.php
:
<?php
namespace micro\models;
use yii\db\ActiveRecord;
class User extends ActiveRecord
{
}
2、在 controllers
文件夹下新建文件 SiteController.php
:
<?php
namespace micro\controllers;
use micro\models\User;
use yii\web\Controller;
class SiteController extends Controller
{
public function actionIndex()
{
return [
‘Status‘ => 200,
‘Data‘ => User::findOne([‘id‘ => 1]),
‘ErrorMessage‘ => ‘‘,
];
}
}
3、访问
- 如果你已经把
web
文件夹设置为访问目录,则可尝试访问:http://localhost/?r=site/index
- 如果你的访问目录是
micro-app
,那么尝试访问:http://localhost/web/?r=site/index
响应大概是:
其他
- URL可以做一些美化,参考:Yii 2.0 权威指南 - 路由
- 接收数据依然可以像在 Yii 基础版里那样,使用
Yii::$app->request->post()
等 - 可以在
\web\index.php
中设置测试环境或生产环境,与 Yii 基础版无异
原文地址:https://www.cnblogs.com/alanabc/p/9728960.html
时间: 2024-10-10 10:16:49