由于最近要使用百度人脸识别的接口,同时集成到我的项目里面,所以将百度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": "leego.sir@gmail.com"
}
],
"minimum-stability": "dev",
"require": {
"yiisoft/yii2": "*"
}
}
二、修改组件命名空间的生命
修改composer.json增加autoload字段,同时在根目录下建立src文件夹。
"autoload": {
"psr-4": {
"leegoway\\aipface\\": "src/"
}
}
三、创建业务相关的类
因为创建的是yii2框架的component,因此要继承这个yii\base\component类:
<?php
namespace leegoway\aipface;
use yii\base\Component;
class FaceFacade extends Component
{
private $aipNFace = null;
public $access_key = '';
public $secret_key = '';
public function init()
{
if (null === $this->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' => '***'
],
]
然后在需要的地方调用组件方法如下:
<?php
...
Yii::$ap->face->GetGroups();
...
六、项目地址
Github项目地址在https://github.com/leegoway/yii2-baidu-aipface ,欢迎大家提issue