# Introduction

Zend_Tag est une suite de composants permettant de manipuler des entités taguables. Ce composant propose 2 classes dans ce but, Zend_Tag_Item et Zend_Tag_ItemList. Aussi, l'interface Zend_Tag_Taggable vous permet d'utiliser vos modèles dans des tags avec Zend_Tag.

Zend_Tag_Item est un composant proposant les fonctionnalités basiques pour traiter des tags dans Zend_Tag. Une entités taguables consiste en un titre et un poids (nombre d'occurrences). Il existe aussi d'autres paramètres utilisés par Zend_Tag.

Pour grouper plusieurs entités ensemble, Zend_Tag_ItemList propose un itérateur de tableau et des fonctions pour calculer le poids absolu des valeurs en fonction du poids de chaque entité.

Utiliser Zend_Tag

Cet exemple montre comment créer une liste de tags en pondérant chacun d'eux.

    // Crée la liste
    $list = new Zend_Tag_ItemList();

    // Ajoute des entités dans la liste
    $list[] = new Zend_Tag_Item(array('title' => 'Code', 'weight' => 50));
    $list[] = new Zend_Tag_Item(array('title' => 'Zend Framework', 'weight' => 1));
    $list[] = new Zend_Tag_Item(array('title' => 'PHP', 'weight' => 5));

    // Valeurs absolues des entités
    $list->spreadWeightValues(array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));

    // Sortie
    foreach ($list as $item) {
        printf("%s: %d\n", $item->getTitle(), $item->getParam('weightValue'));
    }

Ceci va afficher les 3 entités Code, Zend Framework et PHP avec les valeurs absolues 10, 1 et 2.