Skip to content

Commit 9ae0098

Browse files
committed
Use fullname
1 parent bcfebe5 commit 9ae0098

File tree

8 files changed

+90
-75
lines changed

8 files changed

+90
-75
lines changed

README.md

Lines changed: 48 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -81,41 +81,50 @@ Etcd的几个基本操作的使用
8181
#### Put
8282

8383
```php
84-
$kvClient = new Etcdserverpb\KVClient('127.0.0.1:2379');
85-
$request = new Etcdserverpb\PutRequest();
86-
$request->setPrevKv(true);
87-
$request->setKey('Hello');
88-
$request->setValue('Swoole');
89-
list($reply, $status) = $kvClient->Put($request);
90-
if ($status === 0) {
91-
echo "{$reply->getPrevKv()->getKey()}\n";
92-
echo "{$reply->getPrevKv()->getValue()}\n";
93-
} else {
94-
echo "Error#{$status}\n";
95-
}
96-
$kvClient->close();
84+
use Swoole\Coroutine;
85+
86+
Coroutine::create(function () {
87+
$kvClient = new Etcdserverpb\KVClient(GRPC_SERVER_DEFAULT_URI);
88+
$request = new Etcdserverpb\PutRequest();
89+
$request->setPrevKv(true);
90+
$request->setKey('Hello');
91+
$request->setValue('Swoole');
92+
[$reply, $status] = $kvClient->Put($request);
93+
if ($status === 0) {
94+
echo "{$reply->getPrevKv()->getKey()}\n";
95+
echo "{$reply->getPrevKv()->getValue()}\n";
96+
} else {
97+
echo "Error#{$status}: {$reply}\n";
98+
}
99+
$kvClient->close();
100+
});
97101
```
98102

99103
#### Watch
100104

101105
> 创建一个协程负责Watch, 创建两个协程定时写入/删除键值以便观察效果
102106
103107
```php
108+
use Etcdserverpb\WatchCreateRequest;
109+
use Etcdserverpb\WatchCreateRequest\FilterType;
110+
use Etcdserverpb\WatchRequest;
111+
use Swoole\Coroutine;
112+
104113
// The Watcher
105-
go(function () {
106-
$watchClient = new Etcdserverpb\WatchClient('127.0.0.1:2379');
114+
Coroutine::create(function () {
115+
$watchClient = new Etcdserverpb\WatchClient(GRPC_SERVER_DEFAULT_URI);
107116

108117
$watchCall = $watchClient->Watch();
109-
$request = new \Etcdserverpb\WatchRequest();
110-
$createRequest = new \Etcdserverpb\WatchCreateRequest();
118+
$request = new WatchRequest();
119+
$createRequest = new WatchCreateRequest();
111120
$createRequest->setKey('Hello');
112121
$request->setCreateRequest($createRequest);
113122

114123
_retry:
115124
$watchCall->push($request);
116125
/**@var $reply Etcdserverpb\WatchResponse */
117126
while (true) {
118-
list($reply, $status) = $watchCall->recv();
127+
[$reply, $status] = $watchCall->recv();
119128
if ($status === 0) { // success
120129
if ($reply->getCreated() || $reply->getCanceled()) {
121130
continue;
@@ -148,31 +157,31 @@ go(function () {
148157
});
149158

150159
// The Writer Put and Delete
151-
go(function () {
152-
$kvClient = new Etcdserverpb\KVClient('127.0.0.1:2379');
153-
go(function () use ($kvClient) {
160+
Coroutine::create(function () {
161+
$kvClient = new Etcdserverpb\KVClient(GRPC_SERVER_DEFAULT_URI);
162+
Coroutine::create(function () use ($kvClient) {
154163
$request = new Etcdserverpb\PutRequest();
155164
$request->setKey('Hello');
156165
$request->setPrevKv(true);
157166
while (true) {
158167
static $count = 0;
159-
co::sleep(.5);
168+
Coroutine::sleep(.5);
160169
$request->setValue('Swoole#' . (++$count));
161-
list($reply, $status) = $kvClient->Put($request);
170+
[$reply, $status] = $kvClient->Put($request);
162171
if ($status !== 0) {
163172
echo "Error#{$status}: {$reply}\n";
164173
break;
165174
}
166175
}
167176
$kvClient->close();
168177
});
169-
go(function () use ($kvClient) {
178+
Coroutine::create(function () use ($kvClient) {
170179
$request = new Etcdserverpb\DeleteRangeRequest();
171180
$request->setKey('Hello');
172181
$request->setPrevKv(true);
173182
while (true) {
174-
co::sleep(1);
175-
list($reply, $status) = $kvClient->DeleteRange($request);
183+
Coroutine::sleep(1);
184+
[$reply, $status] = $kvClient->DeleteRange($request);
176185
if ($status !== 0) {
177186
echo "Error#{$status}: {$reply}\n";
178187
break;
@@ -189,39 +198,41 @@ go(function () {
189198
> 用户添加/展示/删除以及展示了如何让不同类型的EtcdClient能够使用同一个Grpc\\Client创建的连接
190199
191200
```php
192-
go(function () {
193-
$grpcClient = new Grpc\Client('127.0.0.1:2379');
201+
use Swoole\Coroutine;
202+
203+
Coroutine::create(function () {
204+
$grpcClient = new Grpc\Client(GRPC_SERVER_DEFAULT_URI);
194205
// use in different type clients
195206

196-
go(function () use ($grpcClient) {
197-
$kvClient = new Etcdserverpb\KVClient('127.0.0.1:2379', ['use' => $grpcClient]);
207+
Coroutine::create(function () use ($grpcClient) {
208+
$kvClient = new Etcdserverpb\KVClient(GRPC_SERVER_DEFAULT_URI, ['use' => $grpcClient]);
198209
$request = new Etcdserverpb\PutRequest();
199210
$request->setPrevKv(true);
200211
$request->setKey('Hello');
201212
$request->setValue('Swoole');
202-
list($reply, $status) = $kvClient->Put($request);
213+
[$reply, $status] = $kvClient->Put($request);
203214
if ($status === 0) {
204215
echo "\n=== PUT KV OK ===\n";
205216
} else {
206217
echo "Error#{$status}: {$reply}\n";
207218
}
208219
});
209220

210-
go(function () use ($grpcClient) {
211-
$authClient = new Etcdserverpb\AuthClient('127.0.0.1:2379', ['use' => $grpcClient]);
221+
Coroutine::create(function () use ($grpcClient) {
222+
$authClient = new Etcdserverpb\AuthClient(GRPC_SERVER_DEFAULT_URI, ['use' => $grpcClient]);
212223

213224
$userRequest = new Etcdserverpb\AuthUserAddRequest();
214-
$userNames = ['rango', 'twosee', 'gxh', 'stone', 'sjl'];
225+
$userNames = ['ranCoroutine::create', 'twosee', 'gxh', 'stone', 'sjl'];
215226
foreach ($userNames as $username) {
216227
$userRequest->setName($username);
217-
list($reply, $status) = $authClient->UserAdd($userRequest);
228+
[$reply, $status] = $authClient->UserAdd($userRequest);
218229
if ($status !== 0) {
219230
goto _error;
220231
}
221232
}
222233

223234
$useListRequest = new Etcdserverpb\AuthUserListRequest();
224-
list($reply, $status) = $authClient->UserList($useListRequest);
235+
[$reply, $status] = $authClient->UserList($useListRequest);
225236
if ($status !== 0) {
226237
goto _error;
227238
}
@@ -235,7 +246,7 @@ go(function () {
235246
$userRequest = new Etcdserverpb\AuthUserDeleteRequest();
236247
foreach ($userNames as $username) {
237248
$userRequest->setName($username);
238-
list($reply, $status) = $authClient->UserDelete($userRequest);
249+
[$reply, $status] = $authClient->UserDelete($userRequest);
239250
if ($status !== 0) {
240251
goto _error;
241252
}
@@ -253,4 +264,3 @@ go(function () {
253264

254265
});
255266
```
256-

examples/etcd/put.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22

33
require_once __DIR__ . '/../../vendor/autoload.php';
44

5-
go(function () {
5+
use Swoole\Coroutine;
6+
7+
Coroutine::create(function () {
68
$kvClient = new Etcdserverpb\KVClient(GRPC_SERVER_DEFAULT_URI);
79
$request = new Etcdserverpb\PutRequest();
810
$request->setPrevKv(true);
911
$request->setKey('Hello');
1012
$request->setValue('Swoole');
11-
list($reply, $status) = $kvClient->Put($request);
13+
[$reply, $status] = $kvClient->Put($request);
1214
if ($status === 0) {
1315
echo "{$reply->getPrevKv()->getKey()}\n";
1416
echo "{$reply->getPrevKv()->getValue()}\n";

examples/etcd/put_double.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,17 @@
22

33
require_once __DIR__ . '/../../vendor/autoload.php';
44

5-
go(function () {
5+
use Swoole\Coroutine;
6+
7+
Coroutine::create(function () {
68
$kvClient = new Etcdserverpb\KVClient(GRPC_SERVER_DEFAULT_URI);
79
$request = new Etcdserverpb\PutRequest();
810
$request->setPrevKv(true);
911

10-
go(function () use ($kvClient, $request) {
12+
Coroutine::create(function () use ($kvClient, $request) {
1113
$request->setKey('Hello~');
1214
$request->setValue('I am Swoole!');
13-
list($reply, $status) = $kvClient->Put($request);
15+
[$reply, $status] = $kvClient->Put($request);
1416
if ($status === 0) {
1517
echo "{$reply->getPrevKv()->getKey()}\n";
1618
echo "{$reply->getPrevKv()->getValue()}\n";
@@ -19,10 +21,10 @@
1921
}
2022
});
2123

22-
go(function () use ($kvClient, $request) {
24+
Coroutine::create(function () use ($kvClient, $request) {
2325
$request->setKey('Hey~');
2426
$request->setValue('How are u Etcd?');
25-
list($reply, $status) = $kvClient->Put($request);
27+
[$reply, $status] = $kvClient->Put($request);
2628
if ($status === 0) {
2729
echo "{$reply->getPrevKv()->getKey()}\n";
2830
echo "{$reply->getPrevKv()->getValue()}\n";

examples/etcd/share_client.php

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,41 @@
22

33
require_once __DIR__ . '/../../vendor/autoload.php';
44

5-
go(function () {
5+
use Swoole\Coroutine;
6+
7+
Coroutine::create(function () {
68
$grpcClient = new Grpc\Client(GRPC_SERVER_DEFAULT_URI);
79
// use in different type clients
810

9-
go(function () use ($grpcClient) {
11+
Coroutine::create(function () use ($grpcClient) {
1012
$kvClient = new Etcdserverpb\KVClient(GRPC_SERVER_DEFAULT_URI, ['use' => $grpcClient]);
1113
$request = new Etcdserverpb\PutRequest();
1214
$request->setPrevKv(true);
1315
$request->setKey('Hello');
1416
$request->setValue('Swoole');
15-
list($reply, $status) = $kvClient->Put($request);
17+
[$reply, $status] = $kvClient->Put($request);
1618
if ($status === 0) {
1719
echo "\n=== PUT KV OK ===\n";
1820
} else {
1921
echo "Error#{$status}: {$reply}\n";
2022
}
2123
});
2224

23-
go(function () use ($grpcClient) {
25+
Coroutine::create(function () use ($grpcClient) {
2426
$authClient = new Etcdserverpb\AuthClient(GRPC_SERVER_DEFAULT_URI, ['use' => $grpcClient]);
2527

2628
$userRequest = new Etcdserverpb\AuthUserAddRequest();
2729
$userNames = ['rango', 'twosee', 'gxh', 'stone', 'sjl'];
2830
foreach ($userNames as $username) {
2931
$userRequest->setName($username);
30-
list($reply, $status) = $authClient->UserAdd($userRequest);
32+
[$reply, $status] = $authClient->UserAdd($userRequest);
3133
if ($status !== 0) {
3234
goto _error;
3335
}
3436
}
3537

3638
$useListRequest = new Etcdserverpb\AuthUserListRequest();
37-
list($reply, $status) = $authClient->UserList($useListRequest);
39+
[$reply, $status] = $authClient->UserList($useListRequest);
3840
if ($status !== 0) {
3941
goto _error;
4042
}
@@ -48,7 +50,7 @@
4850
$userRequest = new Etcdserverpb\AuthUserDeleteRequest();
4951
foreach ($userNames as $username) {
5052
$userRequest->setName($username);
51-
list($reply, $status) = $authClient->UserDelete($userRequest);
53+
[$reply, $status] = $authClient->UserDelete($userRequest);
5254
if ($status !== 0) {
5355
goto _error;
5456
}
@@ -64,4 +66,4 @@
6466
$grpcClient->close();
6567
});
6668

67-
});
69+
});

examples/etcd/stress.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,21 @@
22

33
require_once __DIR__ . '/../../vendor/autoload.php';
44

5+
use Swoole\Coroutine;
6+
57
ini_set('memory_limit', '154M');
6-
co::set(['max_coroutine' => 10002]);
7-
go(function () {
8+
Coroutine::set(['max_coroutine' => 10002]);
9+
Coroutine::create(function () {
810
$kvClient = new Etcdserverpb\KVClient(GRPC_SERVER_DEFAULT_URI);
911
$request = new Etcdserverpb\PutRequest();
1012
$request->setPrevKv(true);
1113
$request->setValue('Swoole');
1214

1315
$start = microtime(true);
1416
for ($i = 10000; $i--;) {
15-
go(function () use ($kvClient, $request, $i) {
17+
Coroutine::create(function () use ($kvClient, $request, $i) {
1618
$request->setKey("Hello{$i}");
17-
list($reply, $status) = $kvClient->Put($request);
19+
[$reply, $status] = $kvClient->Put($request);
1820
assert($reply->getPrevKv()->getKey() === "Hello{$i}");
1921
if ($status !== 0) {
2022
echo "Error#{$status}: {$reply}\n";

examples/etcd/watch.php

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
<?php
2-
co::set([
3-
'log_level' => SWOOLE_LOG_INFO,
4-
'trace_flags' => 0,
5-
]);
2+
3+
require_once __DIR__ . '/../../vendor/autoload.php';
64

75
use Etcdserverpb\WatchCreateRequest;
86
use Etcdserverpb\WatchCreateRequest\FilterType;
97
use Etcdserverpb\WatchRequest;
10-
11-
require_once __DIR__ . '/../../vendor/autoload.php';
8+
use Swoole\Coroutine;
129

1310
// The Watcher
14-
go(function () {
11+
Coroutine::create(function () {
1512
$watchClient = new Etcdserverpb\WatchClient(GRPC_SERVER_DEFAULT_URI);
1613

1714
$watchCall = $watchClient->Watch();
@@ -57,15 +54,15 @@
5754
});
5855

5956
// The Writer Put and Delete
60-
go(function () {
57+
Coroutine::create(function () {
6158
$kvClient = new Etcdserverpb\KVClient(GRPC_SERVER_DEFAULT_URI);
62-
go(function () use ($kvClient) {
59+
Coroutine::create(function () use ($kvClient) {
6360
$request = new Etcdserverpb\PutRequest();
6461
$request->setKey('Hello');
6562
$request->setPrevKv(true);
6663
while (true) {
6764
static $count = 0;
68-
co::sleep(.5);
65+
Coroutine::sleep(.5);
6966
$request->setValue('Swoole#' . (++$count));
7067
[$reply, $status] = $kvClient->Put($request);
7168
if ($status !== 0) {
@@ -75,12 +72,12 @@
7572
}
7673
$kvClient->close();
7774
});
78-
go(function () use ($kvClient) {
75+
Coroutine::create(function () use ($kvClient) {
7976
$request = new Etcdserverpb\DeleteRangeRequest();
8077
$request->setKey('Hello');
8178
$request->setPrevKv(true);
8279
while (true) {
83-
co::sleep(1);
80+
Coroutine::sleep(1);
8481
[$reply, $status] = $kvClient->DeleteRange($request);
8582
if ($status !== 0) {
8683
echo "Error#{$status}: {$reply}\n";
@@ -89,4 +86,4 @@
8986
}
9087
$kvClient->close();
9188
});
92-
});
89+
});

examples/grpc/greeter_client.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77

88
$name = !empty($argv[1]) ? $argv[1] : 'Swoole';
99

10-
go(function () use ($name) {
10+
Swoole\Coroutine::create(function () use ($name) {
1111
$greeterClient = new GreeterClient('127.0.0.1:50051');
1212
$request = new HelloRequest();
1313
$request->setName($name);
14-
list($reply) = $greeterClient->SayHello($request);
14+
[$reply] = $greeterClient->SayHello($request);
1515
$message = $reply->getMessage();
1616
echo "{$message}\n";
1717
$greeterClient->close();
18-
});
18+
});

0 commit comments

Comments
 (0)