Yii2写一个扩展

由于最近要使用百度人脸识别的接口,同时集成到我的项目里面,所以将百度aip-face的接口做了一层封装,同时增加了AKSK的认证。

一、创建composer项目

命令行输入 composer init,输入相关信息,最终形成的composer.json文件如下:

{
    "name": "leegoway/yii2-baidu-aipface",
    "description": "A yii2 extension, baidu aip-face with aksk auth",
    "type": "library",
    "license": "BSD 3-Clause",
    "authors": [
        {
            "name": "leegoway",
            "email": "[email protected]"
        }
    ],
    "minimum-stability": "dev",
    "require": {
        "yiisoft/yii2": "*"
    }
}

二、修改组件命名空间的生命

修改composer.json增加autoload字段,同时在根目录下建立src文件夹。

    "autoload": {
        "psr-4": {
            "leegoway\\aipface\\": "src/"
        }
    }

三、创建业务相关的类

因为创建的是yii2框架的component,因此要继承这个yii\base\component类:

aipNFace) {
            $this->aipNFace = new AipNFace($this->access_key, $this->secret_key);
        }
        return $this->aipNFace;
    }

    //获取分组
    public function GetGroup($start = 0, $num = 1)
    {
        $this->getAipHandler();
        return $this->aipNFace->GetGroup($start, $num);
    }

    //获取分组下的所有用户
    public function GetGroupUsers($groupId)
    {
        return $this->aipNFace->GetGroupUsers($groupId);
    }

}

四、提交代码并提交packagist

首先提交github,再次到packagist网站submit一个

五、使用篇

新建一个项目,这里使用mkdir project测试,进入项目后执行以下命令安装此扩展:

composer require "leegoway/yii2-baidu-aipface" dev-master

修改yii项目的web.php并修改component部分如下:

'component' => [
    'face'        => [
         'class' => 'leegoway\aipface\FaceFacade',
         'access_key' => '***',
         'secret_key' => '***'
    ],
]

然后在需要的地方调用组件方法如下:

face->GetGroups();
...

六、项目地址

Github项目地址在https://github.com/leegoway/yii2-baidu-aipface ,欢迎大家提issue

你可能感兴趣的:(Yii2写一个扩展)