yii2部署api接口模块

参考:
https://www.cnblogs.com/tlnshuju/p/7352965.html

1、composer安装yii高级应用程序:
    composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-application

注:yii-application是应用文件即将保存到的文件夹路径

2、项目初始化;进入程序根目录,执行命令“init”
    cd yii-application
    init

3、复制“backend”或“frontend”,更改的文件夹名字(如:api,之后都以api为例),并相应的更改其下文件的命名空间及调用文件路径

4、到“/common/config/bootstrap.php”中加入以下代码

Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');  //新加入别名

5、对于接口来说,都会有相应的版本迭代,所以加入版本模块;进入“/api/config/main.php”,加入以下相应代码

return [
        'aliases' => [
            '@bower' => '@vendor/bower-asset',
            '@npm'   => '@vendor/npm-asset',
        ],
        'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
        'components' => [
            'cache' => [
                'class' => 'yii\caching\FileCache',
            ],
        ],
        'modules' => [ //api版本管理
            'v1' => ['class' => api\modules\v1\Module::class], //v1版本
            'v2' => ['class' => api\modules\v2\Module::class], //v2版本
            ...
        ]
    ];

6、到“/api/modules”目录下新建v1的文件夹,然后在v1文件夹中新建“Module.php”文件,内容如下:

<?php

        namespace api\modules\v1;
        class Module extends \yii\base\Module
        {
            /**
             * {@inheritdoc}
             */
            public $controllerNamespace = 'api\modules\v1\controllers';

            /**
             * {@inheritdoc}
             */
            public function init()
            {
                parent::init();
                // custom initialization code goes here
            }
        }

7、在“/api/moudles/v1”下新建名为“controllers”的文件夹,这里就是存放接口控制器文件的地方

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Yii2进行API接口开发的RBAC实例: 1.首先,您需要安装Yii2框架并创建一个新的Yii2应用程序。 2.然后,您需要安装Yii2的RBAC扩展。您可以通过在终端中运行以下命令来完成此操作: ```shell composer require "yiisoft/yii2-rbac:*" ``` 3.接下来,您需要配置您的应用程序以使用RBAC扩展。您可以在您的应用程序配置文件中添加以下内容: ```php 'components' => [ 'authManager' => [ 'class' => 'yii\rbac\DbManager', ], ], ``` 4.然后,您需要创建RBAC权限和角色。您可以在控制台中运行以下命令来完成此操作: ```shell ./yii rbac/init ``` 5.接下来,您需要创建一个控制器来处理API请求。您可以使用以下代码作为示例: ```php namespace app\controllers; use yii\rest\ActiveController; use yii\filters\auth\HttpBearerAuth; class PostController extends ActiveController { public $modelClass = 'app\models\Post'; public function behaviors() { $behaviors = parent::behaviors(); $behaviors['authenticator'] = [ 'class' => HttpBearerAuth::className(), ]; return $behaviors; } public function checkAccess($action, $model = null, $params = []) { if ($action === 'create' || $action === 'update' || $action === 'delete') { if (!\Yii::$app->user->can('managePosts')) { throw new \yii\web\ForbiddenHttpException('You are not allowed to perform this action.'); } } } } ``` 6.最后,您需要定义RBAC权限和角色。您可以使用以下代码作为示例: ```php $auth = Yii::$app->authManager; // 添加 "managePosts" 权限 $managePosts = $auth->createPermission('managePosts'); $managePosts->description = 'Manage posts'; $auth->add($managePosts); // 添加 "admin" 角色并赋予 "managePosts" 权限 $admin = $auth->createRole('admin'); $auth->add($admin); $auth->addChild($admin, $managePosts); // 将 "admin" 角色分配给用户 $auth->assign($admin, 1); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值