【发布时间】:2015-06-29 12:36:21
【问题描述】:
我正在开发一个基于 MVC 架构的项目(不使用任何框架)并且现在工作正常,但问题是如何集成 twig php 模板引擎。我正在发布我的项目的布局结构以及我用来加载模板和渲染视图的代码。请研究并建议我将树枝集成到 php mvc 架构中的正确解决方案,
项目结构
-
项目1
- 应用程序
- 控制器
- welcome_controllers.php
- 型号
- 查看次数
- 欢迎
- index.html.twig
- 模板
- layout.html.twig
- 欢迎
- 控制器
- 配置
- 库
- 树枝(树枝文件驻留在此处)
- 路由器.php 控制器基类
类控制器{
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); }}
- 应用程序
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>
现在,我在views/templates 文件夹中定义了模板layout.html.php,我想从它继承控制器的所有视图页面。 如果之前实施过这个东西或者对此有任何想法,请有人帮助我。
【问题讨论】:
-
MVC 中的视图不仅仅是愚蠢的模板文件。创建一个可以从控制器调用的类或函数,它将设置 Twig 并呈现模板文件。该类/功能/类集是您的视图。这能把事情弄清楚吗?集成到底有什么问题?