Skip to content

s1lver/yii2-etcd

Folders and files

NameName
Last commit message
Last commit date
May 25, 2023
May 25, 2023
May 11, 2023
Apr 13, 2023
Apr 13, 2023
Apr 13, 2023
May 25, 2023
Apr 13, 2023
May 24, 2023
Aug 9, 2023
Apr 13, 2023
Jun 10, 2024

Repository files navigation

Yii2 etcd component

Latest Stable Version Total Downloads Reliability Rating Security Rating Maintainability Rating Coverage

Interaction component with etcd (A distributed, reliable key-value store for the most critical data of a distributed system) for Yii2 Framework.

https://etcd.io

Required

  • PHP: >= 8.0
  • grpc - for RPC
  • protobuf - for RPC

Install

composer require s1lver/yii2-etcd "^1.0.0"

or add

"s1lver/yii2-etcd": "^1.0.0"

to the require section of your composer.json file.

Supported etcd API version

  • v3

Supported etcd methods

Main

  • version

KV

  • range
  • put

Auth

  • authenticate

How to use

Configure

$config = [
    'components' => [
        'etcd' => [
            'class' => \S1lver\Etcd\Etcd::class,
            'host' => 'etcd:2379',
            'user' => 'username',
            'password' => 'password',
        ],
    ],
];

Get key value

Yii::$app->etcd->getKey('hello')->firstKeyValue;

// Hello

Get etcd version

Yii::$app->etcd->version;

// {"etcdserver":"3.5.8","etcdcluster":"3.5.0"}

Switch between supported protocol

etcd v3 uses gRPC for its messaging protocol. For languages with no gRPC support, etcd provides a JSON gRPC gateway. This gateway serves a RESTful proxy that translates HTTP/JSON requests into gRPC messages.

$config = [
    'components' => [
        'etcd' => [
            'class' => \S1lver\Etcd\Etcd::class,
            ...
            'protocol' => '\S1lver\Etcd\EtcdProtocol::GRPC', // Default value \S1lver\Etcd\EtcdProtocol::HTTP
        ],
    ],
];