composer require vajexal/amp-zookeeper
<?php
declare(strict_types=1);
use Amp\Loop;
use Vajexal\AmpZookeeper\Zookeeper;
use Vajexal\AmpZookeeper\ZookeeperConnector;
require_once 'vendor/autoload.php';
Loop::run(function () {
/** @var Zookeeper $zk */
$zk = yield (new ZookeeperConnector)->connect();
yield $zk->create('/foo', 'bar');
var_dump(yield $zk->get('/foo'));
yield $zk->set('/foo', 'baz');
var_dump(yield $zk->get('/foo'));
var_dump(yield $zk->getChildren('/'));
yield $zk->delete('/foo');
var_dump(yield $zk->exists('/foo'));
yield $zk->close();
});
<?php
declare(strict_types=1);
use Amp\Loop;
use Vajexal\AmpZookeeper\Proto\WatcherEvent;
use Vajexal\AmpZookeeper\Zookeeper;
use Vajexal\AmpZookeeper\ZookeeperConnector;
require_once 'vendor/autoload.php';
Loop::run(function () {
/** @var Zookeeper $zk */
$zk = yield (new ZookeeperConnector)
->watcher(function (WatcherEvent $event) {
var_dump($event);
})
->connect();
yield $zk->create('/foo', 'bar');
yield $zk->get('/foo', true);
yield $zk->delete('/foo');
yield $zk->close();
});
Persistent watch can be added using addWatch
method
<?php
declare(strict_types=1);
use Amp\Loop;
use Vajexal\AmpZookeeper\CreateMode;
use Vajexal\AmpZookeeper\Zookeeper;
use Vajexal\AmpZookeeper\ZookeeperConnector;
require_once 'vendor/autoload.php';
Loop::run(function () {
/** @var Zookeeper $zk */
$zk = yield (new ZookeeperConnector)->connect();
yield $zk->create('/foo', 'bar', CreateMode::EPHEMERAL);
var_dump(yield $zk->getEphemerals());
yield $zk->close();
/** @var Zookeeper $zk */
$zk = yield (new ZookeeperConnector)->connect();
var_dump(yield $zk->exists('/foo'));
$zk->close();
});
<?php
declare(strict_types=1);
use Amp\Loop;
use Vajexal\AmpZookeeper\CreateMode;
use Vajexal\AmpZookeeper\Zookeeper;
use Vajexal\AmpZookeeper\ZookeeperConnector;
require_once 'vendor/autoload.php';
Loop::run(function () {
/** @var Zookeeper $zk */
$zk = yield (new ZookeeperConnector)->connect();
yield $zk->create('/foo', 'bar', CreateMode::EPHEMERAL_SEQUENTIAL);
var_dump(yield $zk->getChildren('/'));
yield $zk->close();
});