Phần mở rộng chuỗi đa byte PHP. Tùy thuộc vào cấu hình PHP của bạn, bạn có thể cần phải cài đặt/cấu hình bổ sung cho nó
Cài đặt
Ứng dụng khách mỏng PHP được vận chuyển dưới dạng gói Trình soạn thảo và kho lưu trữ zip. Sử dụng bất kỳ phương pháp nào để cài đặt ứng dụng khách trong môi trường của bạn
Sử dụng Trình soạn thảo
composer require apache/apache-ignite-client
Để sử dụng ứng dụng khách trong ứng dụng của bạn, hãy đưa tệp
require_once __DIR__ . '/vendor/autoload.php';
2 do Composer tạo vào mã nguồn của bạn, ví dụ:require_once __DIR__ . '/vendor/autoload.php';
Sử dụng Lưu trữ ZIP
Máy khách mỏng có thể được cài đặt từ kho lưu trữ zip có sẵn để tải xuống từ trang web Apache Ignite
Tải về
Giải nén kho lưu trữ và điều hướng đến thư mục gốc
Sử dụng lệnh bên dưới để cài đặt gói
composer install --no-dev
Để sử dụng ứng dụng khách trong ứng dụng của bạn, hãy đưa tệp
require_once __DIR__ . '/vendor/autoload.php';
2 do Composer tạo vào mã nguồn của bạnrequire_once "/vendor/autoload.php";
Tạo một phiên bản ứng dụng khách
Tất cả các hoạt động của ứng dụng khách mỏng PHP được thực hiện thông qua một phiên bản
require_once __DIR__ . '/vendor/autoload.php';
4. Bạn có thể tạo bao nhiêu phiên bản require_once __DIR__ . '/vendor/autoload.php';
4 nếu cần. Tất cả chúng sẽ hoạt động độc lập________số 8_______
Kết nối với cụm
Để kết nối với một cụm, hãy xác định một đối tượng
require_once __DIR__ . '/vendor/autoload.php';
6 với các tham số kết nối mong muốn và sử dụng phương thức require_once __DIR__ . '/vendor/autoload.php';
7use Apache\Ignite\Client;
use Apache\Ignite\ClientConfiguration;
use Apache\Ignite\Exception\ClientException;
function connectClient[]: void
{
$client = new Client[];
try {
$clientConfiguration = new ClientConfiguration[
'127.0.0.1:10800', '127.0.0.1:10801', '127.0.0.1:10802'];
// Connect to Ignite node
$client->connect[$clientConfiguration];
} catch [ClientException $e] {
echo[$e->getMessage[]];
}
}
connectClient[];
Hàm tạo
require_once __DIR__ . '/vendor/autoload.php';
6 chấp nhận danh sách các điểm cuối của nút. Ít nhất một điểm cuối phải được chỉ định. Nếu bạn chỉ định nhiều hơn một, máy khách tối thiểu sẽ sử dụng chúng choNếu máy khách không thể kết nối với cụm, một
require_once __DIR__ . '/vendor/autoload.php';
9 sẽ bị ném khi cố gắng thực hiện bất kỳ thao tác từ xa nàoNếu máy khách đột ngột mất kết nối trước hoặc trong khi vận hành, một
composer install --no-dev
0 sẽ bị ném. Trong trường hợp này, không biết liệu thao tác đã thực sự được thực thi trong cụm hay chưa. Máy khách sẽ cố gắng kết nối lại với nút tiếp theo được chỉ định trong cấu hình khi ứng dụng gọi thao tác tiếp theoGọi phương thức
composer install --no-dev
1 để đóng kết nốiSử dụng API khóa-giá trị
Nhận/Tạo một trường hợp bộ đệm
Phiên bản máy khách cung cấp ba phương thức để lấy phiên bản bộ đệm
2 — trả về bộ đệm hiện có theo tên. Phương pháp này không xác minh xem bộ đệm có tồn tại trong cụm hay không;composer install --no-dev
3 — trả về bộ đệm hiện có theo tên hoặc tạo bộ đệm với cấu hình đã chocomposer install --no-dev
4 — tạo bộ đệm với tên và tham số đã chocomposer install --no-dev
Đây là cách bạn có thể tạo bộ đệm
$cacheCfg = new CacheConfiguration[];
$cacheCfg->setCacheMode[CacheConfiguration::CACHE_MODE_REPLICATED];
$cacheCfg->setWriteSynchronizationMode[CacheConfiguration::WRITE_SYNC_MODE_FULL_SYNC];
$cache = $client->getOrCreateCache['References', $cacheCfg];
Hoạt động khóa-giá trị cơ bản
Đoạn mã sau minh họa cách thực hiện các thao tác khóa-giá trị cơ bản với phiên bản bộ đệm
$val = array[];
$keys = range[1, 100];
foreach [$keys as $number] {
$val[] = new CacheEntry[$number, strval[$number]];
}
$cache->putAll[$val];
$replace = $cache->replaceIfEquals[1, '2', '3'];
echo $replace ? 'true' : 'false'; //false
echo "\r\n";
$value = $cache->get[1];
echo $value; //1
echo "\r\n";
$replace = $cache->replaceIfEquals[1, "1", 3];
echo $replace ? 'true' : 'false'; //true
echo "\r\n";
$value = $cache->get[1];
echo $value; //3
echo "\r\n";
$cache->put[101, '101'];
$cache->removeKeys[$keys];
$sizeIsOne = $cache->getSize[] == 1;
echo $sizeIsOne ? 'true' : 'false'; //true
echo "\r\n";
$value = $cache->get[101];
echo $value; //101
echo "\r\n";
$cache->removeAll[];
$sizeIsZero = $cache->getSize[] == 0;
echo $sizeIsZero ? 'true' : 'false'; //true
echo "\r\n";
Truy vấn quét
Phương pháp
composer install --no-dev
5 có thể được sử dụng để lấy tất cả các mục từ bộ đệm. Nó trả về một đối tượng con trỏ với giao diện PHP Iterator tiêu chuẩn — sử dụng con trỏ này để lặp lại tập kết quả một cách lười biếng, từng cái một. Ngoài ra, con trỏ có các phương thức để nhận tất cả các kết quả cùng một lúc$cache = $client->getOrCreateCache['personCache'];
$cache->put[1, new Person[1, 'John Smith']];
$cache->put[1, new Person[1, 'John Johnson']];
$qry = new ScanQuery[];
$cache->query[new ScanQuery[]];
Thực thi câu lệnh SQL
Máy khách mỏng PHP hỗ trợ tất cả các lệnh SQL được Ignite hỗ trợ. Các lệnh được thực thi thông qua phương thức
composer install --no-dev
6 của đối tượng bộ đệm. Phương thức chấp nhận một thể hiện của composer install --no-dev
7 đại diện cho một câu lệnh SQL. Phương thức composer install --no-dev
8 trả về một đối tượng con trỏ với giao diện PHP Iterator tiêu chuẩn — sử dụng con trỏ này để lặp lại tập kết quả một cách lười biếng, từng cái một. Ngoài ra, con trỏ có các phương thức để nhận tất cả các kết quả cùng một lúc$create_table = new SqlFieldsQuery[
sprintf['CREATE TABLE IF NOT EXISTS Person [id INT PRIMARY KEY, name VARCHAR] WITH "VALUE_TYPE=%s"', Person::class]
];
$create_table->setSchema['PUBLIC'];
$cache->query[$create_table]->getAll[];
$key = 1;
$val = new Person[1, 'Person 1'];
$insert = new SqlFieldsQuery['INSERT INTO Person[id, name] VALUES[?, ?]'];
$insert->setArgs[$val->id, $val->name];
$insert->setSchema['PUBLIC'];
$cache->query[$insert]->getAll[];
$select = new SqlFieldsQuery['SELECT name FROM Person WHERE id = ?'];
$select->setArgs[$key];
$select->setSchema['PUBLIC'];
$cursor = $cache->query[$select];
// Get the results; the `getAll[]` methods closes the cursor; you do not have to call cursor.close[];
$results = $cursor->getAll[];
if [sizeof[$results] != 0] {
echo 'name = ' . $results[0][0];
echo "\r\n";
}
Bảo vệ
SSL/TLS
Để sử dụng giao tiếp được mã hóa giữa máy khách tối thiểu và cụm, bạn phải kích hoạt nó trong cả cấu hình cụm và cấu hình máy khách. Tham khảo phần hướng dẫn về cấu hình cụm
Dưới đây là cấu hình ví dụ để kích hoạt SSL trong ứng dụng khách mỏng
require_once __DIR__ . '/vendor/autoload.php';
0xác thực
Định cấu hình xác thực ở phía cụm và cung cấp tên người dùng và mật khẩu hợp lệ trong cấu hình máy khách