Модель, если простыми словами, это класс, описывающий структуру конкретной таблицы + гетеры и сеттеры. Отдавать страничку будет у вас контроллер. Я в своем проекте делаю так:
Класс, отвечающий за работу твига:
<?php
namespace View;
use Controller\Error;
use Twig_Environment;
use Twig_Loader_Filesystem;
class TwigView implements IView
{
/**
* @var Twig_Environment
*/
private $twig;
/**
* @var Twig_Loader_Filesystem
*/
private $loader;
/**
* @var string
*/
private $template;
/**
* @var array
*/
private $params;
/**
* @param string $template Имя шаблона
* @param array $params Передаваемые параметры
*/
public function __construct($template, $params)
{
$this->loader = new Twig_Loader_Filesystem(TEMPLATE_DIR);
$this->twig = new Twig_Environment($this->loader);
$this->template = $template;
$this->params = $params;
}
/**
* @return string
*/
public function render()
{
try {
return $this->twig->render($this->template, $this->params);
} catch (\Twig_Error_Loader $e) {
$error = new Error();
$error->index404();
}
}
}
В контроллере (метод вывода всех пользователей системы):
public function index()
{
$this->isAuthorized('users');
try {
$twig = new TwigView('Users/ShowAllUsers.twig',
[
'session' => $_SESSION,
'user' => $this->em->getRepository('Model\User')->getAll()
]
);
print $twig->render();
} catch (DatabaseException $e) {
$error = new Error();
$error->index1010($e->getMessage());
}
}