Grazie delle risposte.
Per ora sto sviluppando codice interamente mio, senza uso di framework.
Sto implementando il modello MVC, appunto separando il model dalla vista dal controller.
Nel model ho le classi che gestiscono i dati dal DB (recupero di liste, recupero di singoli oggetti, inserimento, modifica, cancellazione, validazione dei dati).
Nel controller istanzio la classe del model, inizializzo le variabili che userò nella vista e quindi come ultima istruzione richiamo (include) la pagina (la vista).
L'aspetto della vista è simile a questo, tutti gli oggetti o variabili vengono istanziati nel controller
(certo, c'è sempre codice PHP, non uso template engine, ma alla fine è molto più chiaro e pulito di come lavoravo un tempo):
Codice PHP:
<html>
<head><title>
<?=$page->getTitle()?></title>
<?=Config::get_css_files()?>
<?=Config::get_js_files()?>
</head>
<body>
<?php include('header.php'); ?>
<h1><?=$page->getTitle()?></h1>
<form action="item_ctrl.php" method="get">
<input type="text" name="search" value="<?=$search?>">
<input type="submit" name="submitbutton" value="Cerca">
<input type="reset" name="submitbutton" value="Reset" onclick="RedirectToPage('item_ctrl.php');">
<input type="hidden" name="action" value="<?=SEARCH?>">
</form>
<?php foreach ($list->getErr() as $error_msg){ ?>
<?=$error_msg?></p>
<?php } ?>
<table border="1">
<tr>
<td>Codice</td>
<td>Descrizione</td>
<td>Prezzo</td>
<td>Azioni</td>
</tr>
<?php foreach ($item_list as $counter => $item){ ($counter%2==0)?($color="#FFFFFF"):($color="#EFEFEF") ?>
<tr>
<td style="background-color: <?=$color?>">[url="javascript:void(0);"]getID()?>&action=<?=UPDATE?>', 'item_update_popup', 400, 400, 'yes')"><?=$item->getCode()?>[/url]</td>
<td style="background-color: <?=$color?>"><?=$item->getDescription()?></td>
<td style="background-color: <?=$color?>"><?=$item->getPrice()?></td>
<td style="background-color: <?=$color?>">[url="javascript:void(0);"]getID()?>&action=<?=DELETE?>', 'item_update_popup', 400, 400, 'yes')">Elimina[/url]</td>
</tr>
<?php } ?>
</table>
[url="javascript:void(0);"]', 'item_update_popup', 400, 400, 'yes')">Aggiungi articolo[/url]
<?php include('footer.php'); ?>
</body>
</html>