- ┌──────────┬────────────────────┐
- │Zend │Framework │
- └──────────┴────────────────────┘
Zend_Text_TableZend_Text_Table ist eine Komponente für die Erstellung von Text-basierenden Tabellen welche mit unterschiedlichen Dekoratoren arbeitet. Das kann hilfreich sein, wenn man entweder strukturierte Daten in einer Textemail verwenden will, welche normalerweise mit monospaced Schriftarten geschrieben sind, oder um Tabelleninformationen in einer CLI Anwendung darzustellen. Zend_Text_Table unterstützt mehrzeilige Spalten, Colspan und auch Ausrichtung.
Ein Zend_Text_Table Objekt besteht aus Zeilen, die Spalten enthalten, repräsentiert durch Zend_Text_Table_Row und Zend_Text_Table_Column. Wenn eine Tabelle erstellt wird, kann ein Array mit Optionen für die Tabelle angegeben werden: Diese sind:
Zeilen werden zur Tabelle einfach hinzugefügt indem eine neue Instanz von Zend_Text_Table_Row erstellt, und der Tabelle über die appendRow() Methode angehängt wird. Zeilen selbst haben keine Optionen. Man kann der appendRow() Methode auch direkt auch ein Array geben, welches dann automatisch in ein Zeilenobjekt konvertiert wird, welches mehrere Spaltenobjekte enthält. Auf dem gleichen Weg kann man Spalten zu Zeilen hinzufügen. Man erstellt eine neue Instanz von Zend_Text_Table_Column und setzt dann entweder die Zeilenoptionen im Constructor, oder später mit den set*() Methoden. Der erste Parameter ist der Inhalt der Spalte, welcher mehrere Zeilen haben kann, welche im besten Fall einfach durch das '\n' Zeichen getrennt sind. Der zweite Parameter definiert die Ausrichtung, welche standardmäßig 'left' ist, und eine der Klassenkonstanten von Zend_Text_Table_Column sein kann:
Um die Tabelle letztendlich darzustellen, kann man entweder die render() Methode der Tabelle verwenden, oder die magische __toString() Methode der Tabelle, indem man echo $table; oder $tableString = (string) $table ausführt. Example #1 Verwenden von Zend_Text_Table Ein Beispiel zeigt die grundsätzliche Verwendung von Zend_Text_Table um eine einfache Tabelle zu erstellen:
Das führt zur folgenden Ausgabe:
|