# La classe Zookeeper

(PECL zookeeper >= 0.1.0)

## Introduction

Représente une session ZooKeeper.

## Synopsis de la classe

class Zookeeper {
/* Méthodes */
public function __construct(string `$host` = '', callable `$watcher_cb` = `null`, int `$recv_timeout` = 10000)
public function addAuth(string `$scheme`, string `$cert`, callable `$completion_cb` = `null`): bool
public function close(): void
public function connect(string `$host`, callable `$watcher_cb` = `null`, int `$recv_timeout` = 10000): void
public function create(
string `$path`,
string `$value`,
array `$acls`,
int `$flags` = `null`
): string
public function delete(string `$path`, int `$version` = -1): bool
public function exists(string `$path`, callable `$watcher_cb` = `null`): array
public function get(
string `$path`,
callable `$watcher_cb` = `null`,
array `&$stat` = `null`,
int `$max_size` = 0
): string
public function getAcl(string `$path`): array
public function getChildren(string `$path`, callable `$watcher_cb` = `null`): array
public function getClientId(): int
public function getConfig(): ZookeeperConfig
public function getRecvTimeout(): int
public function getState(): int
public function isRecoverable(): bool
public function set(
string `$path`,
string `$value`,
int `$version` = -1,
array `&$stat` = `null`
): bool
public function setAcl(string `$path`, int `$version`, array `$acl`): bool
public static function setDebugLevel(int `$logLevel`): bool
public static function setDeterministicConnOrder(bool `$yesOrNo`): bool
public function setLogStream(resource `$stream`): bool
public function setWatcher(callable `$watcher_cb`): bool
/* Constantes */
const int PERM_READ = 1;
const int PERM_WRITE = 2;
const int PERM_CREATE = 4;
const int PERM_DELETE = 8;
const int PERM_ADMIN = 16;
const int PERM_ALL = 31;
const int EPHEMERAL = 1;
const int SEQUENCE = 2;
const int LOG_LEVEL_ERROR = 1;
const int LOG_LEVEL_WARN = 2;
const int LOG_LEVEL_INFO = 3;
const int LOG_LEVEL_DEBUG = 4;
const int EXPIRED_SESSION_STATE = -112;
const int AUTH_FAILED_STATE = -113;
const int CONNECTING_STATE = 1;
const int ASSOCIATING_STATE = 2;
const int CONNECTED_STATE = 3;
const int READONLY_STATE = 5;
const int NOTCONNECTED_STATE = 999;
const int CREATED_EVENT = 1;
const int DELETED_EVENT = 2;
const int CHANGED_EVENT = 3;
const int CHILD_EVENT = 4;
const int SESSION_EVENT = -1;
const int NOTWATCHING_EVENT = -2;
const int SYSTEMERROR = -1;
const int RUNTIMEINCONSISTENCY = -2;
const int DATAINCONSISTENCY = -3;
const int CONNECTIONLOSS = -4;
const int MARSHALLINGERROR = -5;
const int UNIMPLEMENTED = -6;
const int OPERATIONTIMEOUT = -7;
const int BADARGUMENTS = -8;
const int INVALIDSTATE = -9;
const int NEWCONFIGNOQUORUM = -13;
const int RECONFIGINPROGRESS = -14;
const int OK = 0;
const int APIERROR = -100;
const int NONODE = -101;
const int NOAUTH = -102;
const int BADVERSION = -103;
const int NOCHILDRENFOREPHEMERALS = -108;
const int NODEEXISTS = -110;
const int NOTEMPTY = -111;
const int SESSIONEXPIRED = -112;
const int INVALIDCALLBACK = -113;
const int INVALIDACL = -114;
const int AUTHFAILED = -115;
const int CLOSING = -116;
const int NOTHING = -117;
const int SESSIONMOVED = -118;
const int NOTREADONLY = -119;
const int EPHEMERALONLOCALSESSION = -120;
const int NOWATCHER = -121;
const int RECONFIGDISABLED = -122;
}

## Constantes pré-définies

## Permissions de ZooKeeper

`Zookeeper::PERM_READ`

  Peut lire la valeur des nœuds et lister ses enfants

`Zookeeper::PERM_WRITE`

  Peut modifier la valeur des nœuds

`Zookeeper::PERM_CREATE`

  Peut créer des enfants

`Zookeeper::PERM_DELETE`

  Peut supprimer des enfants

`Zookeeper::PERM_ADMIN`

  Peut exécuter set_acl()

`Zookeeper::PERM_ALL`

  Tous les flags ci-dessus ORd ensemble

## Drapeaux de création ZooKeeper

`Zookeeper::EPHEMERAL`

  Si le drapeau Zookeeper::EPHEMERAL est mis, le nœud sera automatiquement supprimé si la session du client est perdue.

`Zookeeper::SEQUENCE`

  Si le drapeau Zookeeper::SEQUENCE est mis, un numéro de séquence unique et croissant est ajouté au nom du nœud. Le numéro de séquence est toujours de 10 chiffres, complété par des zéros.

## Niveaux de journalisation ZooKeeper

`Zookeeper::LOG_LEVEL_ERROR`
  Sortie des messages d'erreur uniquement
`Zookeeper::LOG_LEVEL_WARN`

  Sortie des messages d'erreur et d'avertissement

`Zookeeper::LOG_LEVEL_INFO`

  Sortie des messages d'action importante en plus des erreurs et avertissements

`Zookeeper::LOG_LEVEL_DEBUG`

  Sortie de tous les messages

## États ZooKeeper

`Zookeeper::EXPIRED_SESSION_STATE`

  Connecté mais la session a expiré

`Zookeeper::AUTH_FAILED_STATE`

  Connecté mais l'authentification a échoué

`Zookeeper::CONNECTING_STATE`

  Connexion en cours

`Zookeeper::ASSOCIATING_STATE`

  Association en cours

`Zookeeper::CONNECTED_STATE`

  Connecté

`Zookeeper::READONLY_STATE`

  TODO: aidez nous à améliorer cette extension.

`Zookeeper::NOTCONNECTED_STATE`

  La connexion a échoué

## Types d'observateurs ZooKeeper

`Zookeeper::CREATED_EVENT`

  Un nœud a été créé

  Ceci est généré uniquement par les observateurs sur des nœuds inexistants. Ces observateurs sont définis en utilisant Zookeeper::exists.

`Zookeeper::DELETED_EVENT`

  Un nœud a été supprimé

  Ceci est généré uniquement par les observateurs sur des nœuds. Ces observateurs sont définis en utilisant Zookeeper::exists et Zookeeper::get.

`Zookeeper::CHANGED_EVENT`

  Un nœud a été changé

  Ceci est généré uniquement par les observateurs sur des nœuds. Ces observateurs sont définis en utilisant Zookeeper::exists et Zookeeper::get.

`Zookeeper::CHILD_EVENT`
  Un changement a eu lieu dans la liste des enfants

  Ceci est généré uniquement par les observateurs sur la liste des enfants d'un nœud. Ces observateurs sont définis en utilisant Zookeeper::getChildren.

`Zookeeper::SESSION_EVENT`

  Une session a été perdue

  Ceci est généré lorsqu'un client perd le contact ou se reconnecte avec un serveur.

`Zookeeper::NOTWATCHING_EVENT`

  Un observateur a été supprimé

  Ceci est généré lorsque le serveur pour une raison quelconque, probablement une contrainte de ressource, ne surveillera plus un nœud pour un client.

## Erreurs systèmes et côté serveur ZooKeeper

`Zookeeper::SYSTEMERROR`

  Ceci n'est jamais généré par le serveur, il ne devrait pas être utilisé autrement que pour indiquer une plage. Spécifiquement les codes d'erreurs supérieurs à cette valeur, mais inférieurs à Zookeeper::APIERROR, sont des erreurs systèmes.

`Zookeeper::RUNTIMEINCONSISTENCY`

  Une incohérence d'exécution a été trouvée.

`Zookeeper::DATAINCONSISTENCY`

  Une incohérence de données a été trouvée.

`Zookeeper::CONNECTIONLOSS`

  La connexion au serveur a été perdue

`Zookeeper::MARSHALLINGERROR`

  Erreur lors de la sérialisation ou désérialisation des données.

`Zookeeper::UNIMPLEMENTED`

  L'opération n'est pas implémentée.

`Zookeeper::OPERATIONTIMEOUT`

  L'opération a expiré.

`Zookeeper::BADARGUMENTS`

  Arguments invalides.

`Zookeeper::INVALIDSTATE`

  État zhandle invalide.

`Zookeeper::NEWCONFIGNOQUORUM`

  Aucun quorum de la nouvelle configuration n'est connecté et à jour avec le leader de la dernière configuration validée - essayez d'invoquer la reconfiguration après que les nouveaux serveurs soient connectés et synchronisés.

  Disponible à partir de ZooKeeper 3.5.0

`Zookeeper::RECONFIGINPROGRESS`

  Reconfiguration demandée alors qu'une autre reconfiguration est en cours. Ceci n'est actuellement pas supporté. Il convient de réessayer.

  Disponible à partir de ZooKeeper 3.5.0

## Erreurs d'API ZooKeeper

`Zookeeper::OK`

  Tout est OK.

`Zookeeper::APIERROR`

  Ceci n'est jamais généré par le serveur, il ne devrait pas être utilisé autrement que pour indiquer une plage. Spécifiquement les codes d'erreurs supérieurs à cette valeur sont des erreurs d'api (tandis que les valeurs inférieures indiquent une Zookeeper::SYSTEMERROR).

`Zookeeper::NONODE`

  Le nœud n'existe pas.

`Zookeeper::NOAUTH`

  Non authentifié.

`Zookeeper::BADVERSION`

  Conflit de version.

`Zookeeper::NOCHILDRENFOREPHEMERALS`

  Les nœuds éphémères ne peuvent pas avoir d'enfants.

`Zookeeper::NODEEXISTS`

  Le nœud existe déjà.

`Zookeeper::NOTEMPTY`

  Le nœud a des enfants.

`Zookeeper::SESSIONEXPIRED`

  La session a expiré par le serveur.

`Zookeeper::INVALIDCALLBACK`

  Fonction de rappel spécifiée invalide.

`Zookeeper::INVALIDACL`

  ACL spécifiée invalide.

`Zookeeper::AUTHFAILED`

  L'authentification du client a échoué.

`Zookeeper::CLOSING`

  ZooKeeper est en train de fermer.

`Zookeeper::NOTHING`

  (pas une erreur) Aucune réponse du serveur à traiter.

`Zookeeper::SESSIONMOVED`

  La session a été déplacée vers un autre serveur, donc l'opération est ignorée.

`Zookeeper::NOTREADONLY`

  Requête de changement d'état passée à un serveur en lecture seule.

`Zookeeper::EPHEMERALONLOCALSESSION`

  Tentative de création de nœud éphémère sur une session locale.

`Zookeeper::NOWATCHER`

  L'observateur n'a pas été trouvé.

`Zookeeper::RECONFIGDISABLED`

  Tentative de réaliser une opération de reconfiguration alors que la fonctionnalité de reconfiguration est désactivée.

## Sommaire

- Zookeeper::addAuth — Spécifie les informations d'authentification de l'application
- Zookeeper::close — Ferme la connexion au serveur ZooKeeper et libère les ressources associées
- Zookeeper::connect — Crée un gestionnaire utilisé pour communiquer avec zookeeper
- Zookeeper::__construct — Créer une connexion pour communiquer avec Zookeeper
- Zookeeper::create — Créer un nœud de manière synchrone
- Zookeeper::delete — Enlève un nœud de manière synchrone
- Zookeeper::exists — Vérifie l'existence d'un nœud de manière synchrone
- Zookeeper::get — Renvoie les données associées à un nœud de manière synchrone
- Zookeeper::getAcl — Renvoie les ACL associées à un nœud de manière synchrone
- Zookeeper::getChildren — Liste les enfants d'un nœud de manière synchrone
- Zookeeper::getClientId — Renvoie l'identifiant de session client, uniquement valide si la connexion est actuellement établie (c'est-à-dire si le dernier état de l'observateur est ZOO_CONNECTED_STATE)
- Zookeeper::getConfig — Renvoie l'instance de ZookeeperConfig
- Zookeeper::getRecvTimeout — Renvoie le délai d'attente pour cette session, uniquement valide si la connexion est actuellement établie (c'est-à-dire si le dernier état de l'observateur est ZOO_CONNECTED_STATE). Cette valeur peut changer après une reconnexion au serveur
- Zookeeper::getState — Renvoie l'état de la connexion zookeeper
- Zookeeper::isRecoverable — Vérifie si l'état de connexion zookeeper actuel peut être récupéré
- Zookeeper::set — Définit les données associées à un nœud
- Zookeeper::setAcl — Définit l'ACL associé à un nœud de manière synchrone
- Zookeeper::setDebugLevel — Définit le niveau de débogage pour la bibliothèque
- Zookeeper::setDeterministicConnOrder — Active/désactive la randomisation de l'ordre des points de terminaison du quorum
- Zookeeper::setLogStream — Définit le flux à utiliser par la bibliothèque pour le journal
- Zookeeper::setWatcher — Définit une fonction d'observation

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open