Ergänzung zu letztem Post
bearbeitet von mermshausIch habe hier…
~~~ php
render('layout', array(
'title' => 'Homepage',
'content' => render('index', $vars)
));
~~~
…beim Schreiben aus dem Kopf ein wenig Mist gebaut (und kann nicht mehr editieren). Das funktioniert so nicht, weil `render` direkt Ausgabe generiert, hier aber einen String liefern müsste.
Schneller Fix:
~~~ php
ob_start();
render('index', $vars);
$content = ob_get_clean();
render('layout', array(
'title' => 'Homepage',
'content' => $content
));
~~~
Dann stimmt auch die Aussage weiter unten nicht mehr, dass der Code ohne Output-Buffering auskommt. (Man kann das prinzipiell aber entsprechend arrangieren, wenn man etwas mehr Infrastruktur baut und Closures oder Objekte nutzt, die dann immer erst bei Bedarf nach HTML gerendert werden.)