Skip to content

Commit 800101c

Browse files
authored
Add Client method description (#242)
1 parent ec9f34d commit 800101c

File tree

3 files changed

+194
-303
lines changed

3 files changed

+194
-303
lines changed

bin/release

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,27 @@ $clientFileContent = file_get_contents($class->getFileName());
2020
$des = new Description(Service::getService());
2121
$operations = array_keys($des->getOperations());
2222
$docComment = "/**\n";
23+
$token = genToken();
2324
foreach ($operations as $key => $operation) {
24-
$type = $arg = '';
25+
$type = $arg = $methodDesc = '';
2526
$model = $des->getOperation($operation)->getResponseModel();
2627
if ($des->hasModel($model)) {
2728
$type = $des->getModel($model)->getType();
2829
if (!empty($des->getOperation($operation)->getParams())) {
29-
$arg = ' (array $arg)';
30+
$arg = '(array $args)';
31+
}
32+
if (isset($token['method'][$operation])) {
33+
$line = $token['method'][$operation];
34+
if (isset($token['comment'][$line - 1])) {
35+
$methodDesc = $token['comment'][$line - 1];
36+
} else {
37+
$methodDesc = isset($token['comment'][$line]) ? $token['comment'][$line] : '';
38+
}
3039
}
3140
}
32-
$docComment .= " * @method {$type} {$operation}{$arg}\n";
41+
$docComment .= " * @method {$type} {$operation}{$arg} {$methodDesc}\n";
3342
}
43+
$docComment .= " * @see \Qcloud\Cos\Service::getService()\n";
3444
$docComment .= ' */';
3545

3646
$data = str_replace($oldDocComment, $docComment, $clientFileContent);
@@ -49,3 +59,26 @@ if (isset($argv[1])) {
4959
echo 'Update version successfully.', PHP_EOL;
5060
}
5161
}
62+
63+
function genToken()
64+
{
65+
$result = [];
66+
$token = token_get_all(file_get_contents(dirname(__DIR__) . '/src/Service.php'));
67+
foreach ($token as $value) {
68+
if (!is_array($value) || !in_array($value[0], [T_COMMENT, T_CONSTANT_ENCAPSED_STRING])) {
69+
continue;
70+
}
71+
switch ($value[0]) {
72+
case T_COMMENT:
73+
$result['comment'][$value[2]] = trim(ltrim($value[1], '//'));
74+
break;
75+
case T_CONSTANT_ENCAPSED_STRING:
76+
$key = trim($value[1], "'");
77+
if(!isset($result['method'][$key])) {
78+
$result['method'][$key] = $value[2];
79+
}
80+
break;
81+
}
82+
}
83+
return $result;
84+
}

src/Client.php

Lines changed: 96 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -15,100 +15,101 @@
1515
use GuzzleHttp\Psr7;
1616

1717
/**
18-
* @method object AbortMultipartUpload (array $arg)
19-
* @method object CreateBucket (array $arg)
20-
* @method object CompleteMultipartUpload (array $arg)
21-
* @method object CreateMultipartUpload (array $arg)
22-
* @method object CopyObject (array $arg)
23-
* @method object DeleteBucket (array $arg)
24-
* @method object DeleteBucketCors (array $arg)
25-
* @method object DeleteBucketTagging (array $arg)
26-
* @method object DeleteBucketInventory (array $arg)
27-
* @method object DeleteObject (array $arg)
28-
* @method object DeleteObjects (array $arg)
29-
* @method object DeleteBucketWebsite (array $arg)
30-
* @method object DeleteBucketLifecycle (array $arg)
31-
* @method object DeleteBucketReplication (array $arg)
32-
* @method object PutObjectTagging (array $arg)
33-
* @method object GetObjectTagging (array $arg)
34-
* @method object DeleteObjectTagging (array $arg)
35-
* @method object GetObject (array $arg)
36-
* @method object GetObjectAcl (array $arg)
37-
* @method object GetBucketAcl (array $arg)
38-
* @method object GetBucketCors (array $arg)
39-
* @method object GetBucketDomain (array $arg)
40-
* @method object GetBucketAccelerate (array $arg)
41-
* @method object GetBucketWebsite (array $arg)
42-
* @method object GetBucketLifecycle (array $arg)
43-
* @method object GetBucketVersioning (array $arg)
44-
* @method object GetBucketReplication (array $arg)
45-
* @method object GetBucketLocation (array $arg)
46-
* @method object GetBucketNotification (array $arg)
47-
* @method object GetBucketLogging (array $arg)
48-
* @method object GetBucketInventory (array $arg)
49-
* @method object GetBucketTagging (array $arg)
50-
* @method object UploadPart (array $arg)
51-
* @method object PutObject (array $arg)
52-
* @method object AppendObject (array $arg)
53-
* @method object PutObjectAcl (array $arg)
54-
* @method object PutBucketAcl (array $arg)
55-
* @method object PutBucketCors (array $arg)
56-
* @method object PutBucketDomain (array $arg)
57-
* @method object PutBucketLifecycle (array $arg)
58-
* @method object PutBucketVersioning (array $arg)
59-
* @method object PutBucketAccelerate (array $arg)
60-
* @method object PutBucketWebsite (array $arg)
61-
* @method object PutBucketReplication (array $arg)
62-
* @method object PutBucketNotification (array $arg)
63-
* @method object PutBucketTagging (array $arg)
64-
* @method object PutBucketLogging (array $arg)
65-
* @method object PutBucketInventory (array $arg)
66-
* @method object RestoreObject (array $arg)
67-
* @method object ListParts (array $arg)
68-
* @method object ListObjects (array $arg)
69-
* @method object ListBuckets
70-
* @method object ListObjectVersions (array $arg)
71-
* @method object ListMultipartUploads (array $arg)
72-
* @method object ListBucketInventoryConfigurations (array $arg)
73-
* @method object HeadObject (array $arg)
74-
* @method object HeadBucket (array $arg)
75-
* @method object UploadPartCopy (array $arg)
76-
* @method object SelectObjectContent (array $arg)
77-
* @method object PutBucketIntelligentTiering (array $arg)
78-
* @method object GetBucketIntelligentTiering (array $arg)
79-
* @method object ImageInfo (array $arg)
80-
* @method object ImageExif (array $arg)
81-
* @method object ImageAve (array $arg)
82-
* @method object ImageProcess (array $arg)
83-
* @method object Qrcode (array $arg)
84-
* @method object QrcodeGenerate (array $arg)
85-
* @method object DetectLabel (array $arg)
86-
* @method object PutBucketImageStyle (array $arg)
87-
* @method object GetBucketImageStyle (array $arg)
88-
* @method object DeleteBucketImageStyle (array $arg)
89-
* @method object PutBucketGuetzli (array $arg)
90-
* @method object GetBucketGuetzli (array $arg)
91-
* @method object DeleteBucketGuetzli (array $arg)
92-
* @method object GetObjectSensitiveContentRecognition (array $arg)
93-
* @method object DetectText (array $arg)
94-
* @method object GetSnapshot (array $arg)
95-
* @method object PutBucketReferer (array $arg)
96-
* @method object GetBucketReferer (array $arg)
97-
* @method object GetMediaInfo (array $arg)
98-
* @method object CreateMediaTranscodeJobs (array $arg)
99-
* @method object CreateMediaSnapshotJobs (array $arg)
100-
* @method object CreateMediaConcatJobs (array $arg)
101-
* @method object DetectAudio (array $arg)
102-
* @method object GetDetectAudioResult (array $arg)
103-
* @method object GetDetectTextResult (array $arg)
104-
* @method object DetectVideo (array $arg)
105-
* @method object GetDetectVideoResult (array $arg)
106-
* @method object DetectDocument (array $arg)
107-
* @method object GetDetectDocumentResult (array $arg)
108-
* @method object CreateDocProcessJobs (array $arg)
109-
* @method object DescribeDocProcessQueues (array $arg)
110-
* @method object DescribeDocProcessJob (array $arg)
111-
* @method object GetDescribeDocProcessJobs (array $arg)
18+
* @method object AbortMultipartUpload(array $args) 舍弃一个分块上传且删除已上传的分片块
19+
* @method object CreateBucket(array $args) 创建存储桶(Bucket)
20+
* @method object CompleteMultipartUpload(array $args) 完成整个分块上传
21+
* @method object CreateMultipartUpload(array $args) 初始化分块上传
22+
* @method object CopyObject(array $args) 复制对象
23+
* @method object DeleteBucket(array $args) 删除存储桶 (Bucket)
24+
* @method object DeleteBucketCors(array $args) 删除跨域访问配置信息
25+
* @method object DeleteBucketTagging(array $args) 删除存储桶标签信息
26+
* @method object DeleteBucketInventory(array $args) 删除存储桶标清单任务
27+
* @method object DeleteObject(array $args) 删除 COS 上单个对象
28+
* @method object DeleteObjects(array $args) 批量删除 COS 对象
29+
* @method object DeleteBucketWebsite(array $args) 删除存储桶(Bucket)的website
30+
* @method object DeleteBucketLifecycle(array $args) 删除存储桶(Bucket)的生命周期配置
31+
* @method object DeleteBucketReplication(array $args) 删除跨区域复制配置
32+
* @method object PutObjectTagging(array $args) 配置对象标签
33+
* @method object GetObjectTagging(array $args) 获取对象标签信息
34+
* @method object DeleteObjectTagging(array $args) 删除对象标签
35+
* @method object GetObject(array $args) 下载对象
36+
* @method object GetObjectAcl(array $args) 获取 COS 对象的访问权限信息(Access Control List, ACL)
37+
* @method object GetBucketAcl(array $args) 获取存储桶(Bucket)的访问权限信息(Access Control List, ACL)
38+
* @method object GetBucketCors(array $args) 查询存储桶(Bucket)跨域访问配置信息
39+
* @method object GetBucketDomain(array $args) 查询存储桶(Bucket)Domain配置信息
40+
* @method object GetBucketAccelerate(array $args) 查询存储桶(Bucket)Accelerate配置信息
41+
* @method object GetBucketWebsite(array $args) 查询存储桶(Bucket)Website配置信息
42+
* @method object GetBucketLifecycle(array $args) 查询存储桶(Bucket)的生命周期配置
43+
* @method object GetBucketVersioning(array $args) 获取存储桶(Bucket)版本控制信息
44+
* @method object GetBucketReplication(array $args) 获取存储桶(Bucket)跨区域复制配置信息
45+
* @method object GetBucketLocation(array $args) 获取存储桶(Bucket)所在的地域信息
46+
* @method object GetBucketNotification(array $args) 获取存储桶(Bucket)Notification信息
47+
* @method object GetBucketLogging(array $args) 获取存储桶(Bucket)日志信息
48+
* @method object GetBucketInventory(array $args) 获取存储桶(Bucket)清单信息
49+
* @method object GetBucketTagging(array $args) 获取存储桶(Bucket)标签信息
50+
* @method object UploadPart(array $args) 分块上传
51+
* @method object PutObject(array $args) 上传对象
52+
* @method object AppendObject(array $args) 追加对象
53+
* @method object PutObjectAcl(array $args) 设置 COS 对象的访问权限信息(Access Control List, ACL)
54+
* @method object PutBucketAcl(array $args) 设置存储桶(Bucket)的访问权限(Access Control List, ACL)
55+
* @method object PutBucketCors(array $args) 设置存储桶(Bucket)的跨域配置信息
56+
* @method object PutBucketDomain(array $args) 设置存储桶(Bucket)的Domain信息
57+
* @method object PutBucketLifecycle(array $args) 设置存储桶(Bucket)生命周期配置
58+
* @method object PutBucketVersioning(array $args) 存储桶(Bucket)版本控制
59+
* @method object PutBucketAccelerate(array $args) 配置存储桶(Bucket)Accelerate
60+
* @method object PutBucketWebsite(array $args) 配置存储桶(Bucket)website
61+
* @method object PutBucketReplication(array $args) 配置存储桶(Bucket)跨区域复制
62+
* @method object PutBucketNotification(array $args) 设置存储桶(Bucket)的回调设置
63+
* @method object PutBucketTagging(array $args) 配置存储桶(Bucket)标签
64+
* @method object PutBucketLogging(array $args) 开启存储桶(Bucket)日志服务
65+
* @method object PutBucketInventory(array $args) 配置存储桶(Bucket)清单
66+
* @method object RestoreObject(array $args) 回热归档对象
67+
* @method object ListParts(array $args) 查询存储桶(Bucket)中正在进行中的分块上传对象
68+
* @method object ListObjects(array $args) 查询存储桶(Bucket)下的部分或者全部对象
69+
* @method object ListBuckets 获取所属账户的所有存储空间列表
70+
* @method object ListObjectVersions(array $args) 获取多版本对象
71+
* @method object ListMultipartUploads(array $args) 获取已上传分块列表
72+
* @method object ListBucketInventoryConfigurations(array $args) 获取清单列表
73+
* @method object HeadObject(array $args) 获取对象的meta信息
74+
* @method object HeadBucket(array $args) 存储桶(Bucket)是否存在
75+
* @method object UploadPartCopy(array $args) 分块copy
76+
* @method object SelectObjectContent(array $args) 检索对象内容
77+
* @method object PutBucketIntelligentTiering(array $args) 存储桶(Bucket)开启智能分层
78+
* @method object GetBucketIntelligentTiering(array $args) 查询存储桶(Bucket)智能分层
79+
* @method object ImageInfo(array $args) 万象-获取图片基本信息
80+
* @method object ImageExif(array $args) 万象-获取图片EXIF信息
81+
* @method object ImageAve(array $args) 万象-获取图片主色调信息
82+
* @method object ImageProcess(array $args) 万象-云上数据处理
83+
* @method object Qrcode(array $args) 万象-二维码下载时识别
84+
* @method object QrcodeGenerate(array $args) 万象-二维码生成
85+
* @method object DetectLabel(array $args) 万象-图片标签
86+
* @method object PutBucketImageStyle(array $args) 万象-增加样式
87+
* @method object GetBucketImageStyle(array $args) 万象-查询样式
88+
* @method object DeleteBucketImageStyle(array $args) 万象-删除样式
89+
* @method object PutBucketGuetzli(array $args) 万象-开通Guetzli压缩
90+
* @method object GetBucketGuetzli(array $args) 万象-查询Guetzli状态
91+
* @method object DeleteBucketGuetzli(array $args) 万象-关闭Guetzli压缩
92+
* @method object GetObjectSensitiveContentRecognition(array $args) 图片审核
93+
* @method object DetectText(array $args) 文本审核
94+
* @method object GetSnapshot(array $args) 媒体截图
95+
* @method object PutBucketReferer(array $args) 添加防盗链
96+
* @method object GetBucketReferer(array $args) 获取防盗链规则
97+
* @method object GetMediaInfo(array $args) 获取媒体信息
98+
* @method object CreateMediaTranscodeJobs(array $args) 媒体转码
99+
* @method object CreateMediaSnapshotJobs(array $args) 媒体转码
100+
* @method object CreateMediaConcatJobs(array $args) 媒体截图
101+
* @method object DetectAudio(array $args) 媒体拼接
102+
* @method object GetDetectAudioResult(array $args) 音频审核
103+
* @method object GetDetectTextResult(array $args) 主动获取音频审核结果
104+
* @method object DetectVideo(array $args) 主动获取文本文件审核结果
105+
* @method object GetDetectVideoResult(array $args) 视频审核
106+
* @method object DetectDocument(array $args) 主动获取视频审核结果
107+
* @method object GetDetectDocumentResult(array $args) 文档审核
108+
* @method object CreateDocProcessJobs(array $args) 主动获取文档审核结果
109+
* @method object DescribeDocProcessQueues(array $args) 提交文档转码任务
110+
* @method object DescribeDocProcessJob(array $args) 查询文档转码队列
111+
* @method object GetDescribeDocProcessJobs(array $args) 查询文档转码任务
112+
* @see \Qcloud\Cos\Service::getService()
112113
*/
113114
class Client extends GuzzleClient {
114115
const VERSION = '2.4.1';
@@ -123,7 +124,7 @@ class Client extends GuzzleClient {
123124
private $signature;
124125
private $rawCosConfig;
125126

126-
public function __construct($cosConfig) {
127+
public function __construct(array $cosConfig) {
127128
$this->rawCosConfig = $cosConfig;
128129
$this->cosConfig['schema'] = isset($cosConfig['schema']) ? $cosConfig['schema'] : 'http';
129130
$this->cosConfig['region'] = isset($cosConfig['region']) ? region_map($cosConfig['region']) : null;

0 commit comments

Comments
 (0)