我有一个包含php和twig模板的网站。
我需要两个系统都使用包含调用导航创建类的php的公共header.php
文件。我无法将非twig文件转换为twig,我没有看到从树枝范围内执行php的方法。
这会产生一种情况,当使用twig内容时,头文件的服务不正确,因为php不会被执行并显示给用户。我有一套广泛且不断增长的Twig和PHP模板(不要问) - 将一个转换为另一个是不可能的。
关于我如何处理这种情况的任何想法?
哦,这是建立在Slim上的。
修改
具体来说,这个php确定要使用的正确数据库连接,并包含一个单独的文件,用于决定是使用缓存版本还是从数据库重新生成导航结构。
不重复 - PHP模板不会执行twig函数。
答案 0 :(得分:0)
所以,我确实解决了这个问题。我意识到我可以通过使用db连接来区分twig / php源代码,这允许我编写一个twig函数来处理这种情况并保留现有的php方法用于这些上下文。
仅仅是为了感兴趣,这是现在正在顺利运行的导航加载代码:
<!-- madness -->
<span style="display: none;">{% if 0 == 1 %}</span>
<?php
if (isset($this->db)) {
$pdo = $this->db;
require_once 'primary-navigation.php';
}
?>
<span style="display: none;">{% endif %}</span>
<span style="display: none;"><?php if (0 == 1) { ?></span>
{{ loadNavigation(pdo) }}
<span style="display: none;"><?php } ?></span>
<!-- end of madness -->
每一行都是功能性和关键性的。统计所有这些语言!
答案 1 :(得分:0)
Twig是PHP的视图模板引擎Model–view–controller (MVC)。
模型MVC的核心组件捕获了该模型的行为 应用程序在其问题域方面,独立于用户 接口
- 该模型直接管理应用程序的数据,逻辑和规则。
- 视图可以是信息的任何输出表示,例如图表或图表。相同信息的多个视图 可能的,例如管理条形图和表格视图 会计师。强>
- 第三部分,即控制器,接受输入并将其转换为模型或视图的命令。