# La classe ResourceBundle

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 2.0.0)

## Introduction

Les application localisées ont souvent besoin de manipuler des données devant être personnalisées en fonction d'une locale considérée, e.g.: messages, libélés, chaines de formatage. ICU permet de définir des ressources que l'application pourra charger avec une locale une fois pour toutes : tous les accès ultérieurs se feront au moyen d'une interface unique non dépendante de la locale considérée.

Cette classe permet l'accès aux fichiers de données de ICU. Ces fichiers représentent des tableaux binaires que ICU utilise pour stocker les données localisées.

Les bundle de ressource ICU supportent les ressources simples et complexes. Les ressources complexes sont des conteneurs qui peuvent être indéxés numériquement ou litéralement (comme les tableaux PHP). Les ressources simples, elles, peuvent être de type chaine, entier, binaire ou tableau numérique.

ResourceBundle supporte l'accès direct aux données via la syntaxe des tableaux ainsi que l'itération grâce à foreach. Ces possibilités existent aussi via les méthodes. Le résultat sera une valeur PHP pour les ressources simples, ou un objet ResourceBundle pour les ressources complexes. Les ressources sont en lecture seule.

## Synopsis de la classe

class ResourceBundle implements IteratorAggregate, Countable {
/* Méthodes */
public __construct(?string `$locale`, ?string `$bundle`, bool `$fallback` = `true`)
public count(): int
public static create(?string `$locale`, ?string `$bundle`, bool `$fallback` = `true`): ?ResourceBundle
public get(string|int `$index`, bool `$fallback` = `true`): mixed
public getErrorCode(): int
public getErrorMessage(): string
public static getLocales(string `$bundle`): array|false
}

## Historique

Version | Description
--- | ---
8.0.0 | La classe ResourceBundle implémente désormais IteratorAggregate. Auparavant, seule Traversable était implémentée.
7.4.0 | La classe ResourceBundle implémente désormais Countable.

## Voir aussi

- » Configuration des ressources ICU
- » ICU Data

## Sommaire

- ResourceBundle::count — Récupère le nombre d'éléments dans le faisceau
- ResourceBundle::create — Crée une ressource représentant un faisceau
- ResourceBundle::get — Récupère les données depuis le faisceau
- ResourceBundle::getErrorCode — Récupère le dernier code erreur du faisceau
- ResourceBundle::getErrorMessage — Récupère le dernier message d'erreur depuis le faisceau
- ResourceBundle::getLocales — Récupère les locales supportées