Я работаю над проектом, который основан на архитектуре MVC (без использования какой-либо структуры) и сейчас работает нормально, но проблема в том, как интегрировать механизм шаблонов twig php. Я публикую структуру макета своего проекта и код, который я использую для загрузки шаблона и рендеринга представления. Пожалуйста, изучите и предложите мне правильное решение для интеграции ветки в архитектуру php mvc,
Структура проекта
Проект1
- app
- controllers
- welcome_controllers.php
- модели
- views
- welcome
- index.html.twig
- templates
- layout.html.twig
- welcome
- controllers
- config
- libraries
- Twig(twig files resides here)
- router.php базовый класс контроллера
class Controller {
var $twig = null; public function loadTwig() { Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem( array (APP_PATH.'/views/') ); // set up environment $params = array( 'cache' => BASE_PATH.'/cache', 'auto_reload' => true, // disable cache 'autoescape' => true ); $this->twig = new Twig_Environment($loader, $params); }
}
- app
Класс WelcomeController
class WelcomeController extends AppController{
public function index(){
$this->loadTwig();
$this->twig->render('welcome/index.html.twig');
}
}
файл index.html.twig
{% extends '../templates/layout.html.twig' %}
{% block title %}
Index Page Title
{% endblock %}
файл layout.html.twig
<html>
<head>
<title>{% block title %}{% endblock %} - My Webpage</title>
</head>
<body>
base template text
</body>
</html>
Теперь я определил шаблон layout.html.php в папке views / templates и хочу унаследовать от него все страницы просмотра для контроллеров. Пожалуйста, помогите мне, если реализовали эту вещь раньше или имеют какое-либо представление об этом.