Skip to content
Etcd client library for PHP
Branch: master
Clone or download
Latest commit bb17b4f Mar 27, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin Etcd node exporter Mar 25, 2019
src Etcd node exporter Mar 25, 2019
tests Etcd node exporter Mar 25, 2019
.gitignore Ignore composer.lock in library Feb 21, 2014
.travis.yml add support php nightly Jul 25, 2017
LICENSE.md Create LICENSE.md Apr 2, 2014
README.md Etcd node exporter Mar 25, 2019
composer.json Etcd node exporter Mar 25, 2019
phpunit.xml.dist add support php nightly Jul 25, 2017

README.md

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

Etcd client library for PHP

etcd is a distributed configuration system, part of the coreos project.

This repository provides a client library for etcd for PHP applications.

Installing and running etcd

git clone https://github.com/coreos/etcd.git
cd etcd
./build
./bin/etcd

Brought to you by the LinkORB Engineering team

Check out our other projects at linkorb.com/engineering.

Btw, we're hiring!

Usage

The client

Instantiate the client

$client = new Client($server);

Instantiate the client with custom Guzzle Client

$client = Client::constructWithGuzzleClient($guzzleClient, $server);

Use the client instance

$client->set('/foo', 'fooValue');
// Set the ttl
$client->set('/foo', 'fooValue', 10);
// get key value
echo $client->get('/foo');

// Update value with key
$client->update('/foo', 'newFooValue');

// Delete key
$client->rm('/foo');

// Create a directory
$client->mkdir('/fooDir');
// Remove dir
$client->rmdir('/fooDir');    

The command line tool

Setting Key Values

Set a value on the /foo/bar key:

$ bin/etcd-php etcd:set /foo/bar "Hello world"

Set a value on the /foo/bar key with a value that expires in 60 seconds:

$ bin/etcd-php etcd:set /foo/bar "Hello world" --ttl=60

Create a new key /foo/bar, only if the key did not previously exist:

$ bin/etcd-php etcd:mk /foo/new_bar "Hello world"

Create a new dir /fooDir, only if the key did not previously exist:

$ bin/etcd-php etcd:mkdir /fooDir

Update an existing key /foo/bar, only if the key already existed:

$ bin/etcd-php etcd:update /foo/bar "Hola mundo"

Create or update a directory called /mydir:

$ bin/etcd-php etcd:setDir /mydir

Retrieving a key value

Get the current value for a single key in the local etcd node:

$ bin/etcd-php etcd:get /foo/bar

Listing a directory

Explore the keyspace using the ls command

$ bin/etcd-php etcd:ls
/akey
/adir
$ bin/etcd-php etcd:ls /adir
/adir/key1
/adir/key2

Add -recursive to recursively list subdirectories encountered.

$ bin/etcd-php etcd:ls --recursive
/foo
/foo/bar
/foo/new_bar
/fooDir

Deleting a key

Delete a key:

$ bin/etcd-php etcd:rm /foo/bar

Delete an empty directory or a key-value pair

$ bin/etcd-php etcd:rmdir /path/to/dir 

Recursively delete a key and all child keys:

$ bin/etcd-php etcd:rmdir /path/to/dir --recursive

Export node

$ bin/etcd-php etcd:export --server=http://127.0.0.1:2379 --format=json --output=config.json /path/to/dir

Watching for changes

Watch for only the next change on a key:

$ bin/etcd-php etcd:watch /foo/bar
You can’t perform that action at this time.