Regina Schaukrug: Projektvorstellung: Teein/Html eine Virtual DOM basierte Templating Engine für PHP 7.1

Beitrag lesen

problematische Seite

es ist eine sehr passionierte Engine für Leute, die gerne funktional programmieren,

Hatte DOM nicht das O von Object?

Warum also funktional und nicht als Objekt formulieren?

define( 'HtmlVersion', 5 );
define( 'GetOutHuman', 0 );
define( 'GetOutMinimized', 1 );

$title = 'Hallo Welt';

$doc   =  new DOM();
$doc   -> setTitle( $title );
$elem  =  new Headline( 1, $title );
$elem  =  addClass( 'docTitle' );
$doc   -> addElem( $elem );
$table =  new Table();
$table -> setCaption( 'Monat' );
$table -> setId( 'Monatstabelle' );
$cg    -> new Colgroup();
$cols  =  array();
$col[0] =  new Col;
$col[0] -> addClass( 'woche');
for ( $i = 1; $i < 8; $i++ ) {
    $col[$i] =  newCol;
    $col[$i] -> addClass( 'tag');
}
$cg    -> addCols( $col );
$table -> addColgroup( $cg );

$tr = new TableRow();
$tds = array();
for ( $i = 1; $i < 8; $i++ ) {
  $tds[$i] =  new TableData();
  $tds[$i] -> setValue( $i );
  if ( $i = date( 'd' ) ) {
     $tds[$i] -> addClass( 'heute' );
  }
}
$tr ->    addTableData( $tds );
$table -> addTableRow( $tr );
$doc ->   addElem( $table );


[...]
echo $doc -> getOut( GetOutMinimized );

Über die Setter (auch addClass() ) könnte man Attribute fest bestimmen, Werte säubern(entities, specialchars,...), die checker prüfen das Objekt auf Vollständigkeit, die Adder könnten prüfen ob ein Element oder ein Array hinzugefügt wird, die Methode addElem() könnte einen Validator der Objekte aufrufen und das Objekt zuvor darauf testen, ob alle Pflichtangaben (img:src, alt) vorhanden sind.

Ich weiß nur noch immer nicht wozu ich so einen Overhead brauche.