序言:
我在跟着yii官网配置关于版本的配置时,老是出现问题,因为在我的项目中可能和他们的项目有不同之处,导致我的配置出现一些问题, 也有可能自己现在还是小白,所以当我配置成功后,打算自己整理一下,以免以后时间一长,就忘了.......
下面我就介绍一下我的配置信息,并以图的形式展现出来:
1: 下面是我的项目目录platform_api,分别是包含config配置文件,新建modules文件夹,实行api接口版本控制。例如V1版本、V2版本…
2: 现在以v2版本api文件配置为例; 在v2文件夹下新建controllers文件夹(控制器)、models文件夹(模型)、Module.php配置文件。
Module.php文件如下:(第2行和第7行随版本扩展而变化(v1->v2...)。)
<?php
namespace api\modules\v2;
class Module extends \yii\base\Module
{
public $controllerNamespace = 'api\modules\v2\controllers';
public function init()
{
parent::init();
}
}
3: 配置config文件夹下的main.php文件
<?php
$params = array_merge(
require(__DIR__ . '/../../common/config/params.php'),
require(__DIR__ . '/../../common/config/params-local.php'),
require(__DIR__ . '/params.php'),
require(__DIR__ . '/params-local.php')
);
return [
'id' => 'api',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'controllerNamespace' => 'api\controllers',
'modules' => [
'v1' => [
'class' => 'api\modules\v1\Module'
],
'v2' => [
'class' => 'api\modules\v2\Module'
],
],
'components' => [
'user' => [
'identityClass' => 'api\modules\v1\models\oauth\AccessToken', //在项目中添加了access_token验证
'enableAutoLogin' => true,
'enableSession' => false,
'loginUrl' => null
],
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'urlManager' => [
// 启用美化URL
'enablePrettyUrl' => true,
// 是否执行严格的url解析
'enableStrictParsing' => true,
// 在URL路径中是否显示脚本入口文件
'showScriptName' => false,
'rules' => [
['class' => 'yii\rest\UrlRule','controller' => ['v1/user']], //随着接口控制器的增多,可以直接在数组中增加即可
['class' => 'yii\rest\UrlRule','controller' => ['v2/user']],
['class' => 'yii\rest\UrlRule','controller' => ['v2/friend']],
],
],
'errorHandler' => [
'errorAction' => 'site/error',
],
],
'params' => $params,
];
4: 最后你去访问接口的时候,地址上就可以带上版本号了