Moin moin,
$table = viewTable([ ['Lorem', 'ipsum', 'dolor'], ['sit', 'amet', 'consetetur'], ['sadipscing', 'elitr', 'sed'] ]);
vermutlich erschafft das eine 3x3-Tabelle:
|Lorem|ipsum|dolor |sit|amet|consetetur |sadipscing|elitr|sed
Korrekt.
Wie macht man das mit Tabellenüberschriften dazu?
Da gibt es viele Möglichkeiten, naheliegend ist es den View-Helper mit einem zusätzlichen Parameter für die Überschrift auszustatten:
function viewTableWithCaption(string $caption, array $table) : Element
{
return table()(
caption()(text($caption)),
...array_map('viewRow', $table)
);
}
Um den View-Helper mit Leben zu füllen, übergibt man ihm beim Aufruf die passende Überschrift und die tabellarischen Daten:
$table = viewTableWithCaption(
'Hello World',
[
['Lorem', 'ipsum', 'dolor'],
['sit', 'amet', 'consetetur'],
['sadipscing', 'elitr', 'sed']
]
);
An dem Beispiel lässt sich auch gut verdeutlichen, dass sich Teein/Html-Templates leicht wiederverwenden lassen: Statt viewTable
musste man eine neue Funktion viewTableWithCaption
schreiben, die View-Helper viewRow
und viewColumn
werden beide wiederverwendet. viewRow
explizit, viewColumn
implizit, da er von viewRow
benutzt wird. Und man musste keinen bestehenden Code verändern.