|
1
|
|
|
<?php |
|
2
|
|
|
|
|
3
|
|
|
/** |
|
4
|
|
|
* This file is part of the tarantool/client package. |
|
5
|
|
|
* |
|
6
|
|
|
* (c) Eugene Leonovich <[email protected]> |
|
7
|
|
|
* |
|
8
|
|
|
* For the full copyright and license information, please view the LICENSE |
|
9
|
|
|
* file that was distributed with this source code. |
|
10
|
|
|
*/ |
|
11
|
|
|
|
|
12
|
|
|
declare(strict_types=1); |
|
13
|
|
|
|
|
14
|
|
|
use Symfony\Component\Uid\Uuid; |
|
15
|
|
|
use Tarantool\Client\Schema\Criteria; |
|
16
|
|
|
|
|
17
|
|
|
require __DIR__.'/../bootstrap.php'; |
|
18
|
|
|
|
|
19
|
|
|
$client = create_client(); |
|
20
|
|
|
ensure_server_version_at_least('2.4', $client); |
|
21
|
|
|
ensure_class(Uuid::class, 'Composer package "symfony/uid" is required'); |
|
22
|
|
|
ensure_pure_packer($client); |
|
23
|
|
|
|
|
24
|
|
|
$spaceName = 'example'; |
|
25
|
|
|
|
|
26
|
|
|
$client->evaluate( |
|
27
|
|
|
<<<LUA |
|
28
|
|
|
if box.space[...] then box.space[...]:drop() end |
|
29
|
|
|
local space = box.schema.space.create(...) |
|
30
|
|
|
space:create_index("primary", {parts = {1, 'uuid'}}) |
|
31
|
|
|
local uuid = require('uuid') |
|
32
|
|
|
space:insert({uuid.fromstr('64d22e4d-ac92-4a23-899a-e59f34af5479'), 'foo'}) |
|
33
|
|
|
LUA |
|
34
|
|
|
, $spaceName); |
|
35
|
|
|
|
|
36
|
|
|
$space = $client->getSpace($spaceName); |
|
37
|
|
|
|
|
38
|
|
|
$result1 = $space->insert([new Uuid('7e3b84a4-0819-473a-9625-5d57ad1c9604'), 'bar']); |
|
39
|
|
|
$result2 = $space->select(Criteria::geIterator()); |
|
40
|
|
|
|
|
41
|
|
|
function print_result(string $title, array $rows) : void |
|
42
|
|
|
{ |
|
43
|
|
|
echo "$title:\n"; |
|
44
|
|
|
foreach ($rows as $row) { |
|
45
|
|
|
printf("[%s('%s'), '%s']\n", get_class($row[0]), $row[0], $row[1]); |
|
46
|
|
|
} |
|
47
|
|
|
} |
|
48
|
|
|
|
|
49
|
|
|
print_result('Result 1', $result1); |
|
50
|
|
|
print_result('Result 2', $result2); |
|
51
|
|
|
|
|
52
|
|
|
/* OUTPUT |
|
53
|
|
|
Result 1: |
|
54
|
|
|
[Symfony\Component\Uid\UuidV4('7e3b84a4-0819-473a-9625-5d57ad1c9604'), 'bar'] |
|
55
|
|
|
Result 2: |
|
56
|
|
|
[Symfony\Component\Uid\UuidV4('64d22e4d-ac92-4a23-899a-e59f34af5479'), 'foo'] |
|
57
|
|
|
[Symfony\Component\Uid\UuidV4('7e3b84a4-0819-473a-9625-5d57ad1c9604'), 'bar'] |
|
58
|
|
|
*/ |
|
59
|
|
|
|