- ob_get_clean: documentation ( source)
- ob_start: documentation ( source)
- extract: documentation ( source)
<?php
class Template {
private $dir = 'app/views/';
public function render($template, $data = [], $renderNow = true){
ob_start();
extract($data, EXTR_SKIP);
require $this->dir.$template.'.html';
$ret = ob_get_clean();
if($renderNow){
echo $ret;
}
return $ret;
}
}
//in controllers/someController.php
class SomeController {
public function list(){
$template = new Template();
$template->render('list');
}
public function show($id){
$template = new Template();
$template->render('some',['id' => $id]);
}
}
//in frontController
//somehow you know you need 'someController' and action - 'show':
$someController = new SomeController();
$someController->list();
?>