# Einführung

Zend_Tag ist eine Komponenten Suite welche zwei Klassen anbietet um mit Tags zu arbeiten, Zend_Tag_Item und Zend_Tag_ItemList. Zusätzlich kommt sie mit dem Interface Zend_Tag_Taggable, welches es erlaubt jedes eigene Modell als markiertes Element, in Verbindung mit Zend_Tag, zu verwenden.

Zend_Tag_Item ist eine grundsätzliche Implementation eines markierten Elements, welche mit der essentiellen Funktionalität kommt, die notwendig ist um mit der Zend_Tag Suite zu arbeiten. Ein markierbares Element besteht immer aus einem Titel und einem relativen Gewicht (z.B. die Anzahl der Vorkommnisse). Es speichert auch Parameter welche von den unterschiedlichen Sub-Komponenten von Zend_Tag verwendet werden.

Um mehrere Element miteinander zu gruppieren, existiert Zend_Tag_ItemList als Array Iterator und bietet zusätzliche Funktionalitäten um die Werte des absoluten Gewichts, basierend auf dem angegebenen relativen Gewicht jedes Elements in diesem, zu kalkulieren.

Verwenden von Zend_Tag

Dieses Beispiel zeigt wie eine Liste von Tags erstellt, und Werte des absoluten Gewichts auf diesen verteilt werden kann.

    // Erstellen des Elementliste
    $list = new Zend_Tag_ItemList();

    // Hinzufügen der Tags zur Elementliste
    $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));

    // Absolute Werte auf den Elementen verteilen
    $list->spreadWeightValues(array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));

    // Die Werte mit ihren absoluten Werten ausgeben
    foreach ($list as $item) {
        printf("%s: %d\n", $item->getTitle(), $item->getParam('weightValue'));
    }

Das wird die drei Elemente Code, Zend Framework und PHP, mit den absoluten Werten 10, 1 und 2, ausgeben.