处理twig和php之间的公共文件

时间:2016-07-26 10:46:39

标签: php twig slim

我有一个包含php和twig模板的网站。

我需要两个系统都使用包含调用导航创建类的php的公共header.php文件。我无法将非twig文件转换为twig,我没有看到从树枝范围内执行php的方法。

这会产生一种情况,当使用twig内容时,头文件的服务不正确,因为php不会被执行并显示给用户。我有一套广泛且不断增长的Twig和PHP模板(不要问) - 将一个转换为另一个是不可能的。

关于我如何处理这种情况的任何想法?

哦,这是建立在Slim上的。

修改

具体来说,这个php确定要使用的正确数据库连接,并包含一个单独的文件,用于决定是使用缓存版本还是从数据库重新生成导航结构。

不重复 - PHP模板不会执行twig函数。

2 个答案:

答案 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的核心组件捕获了该模型的行为   应用程序在其问题域方面,独立于用户   接口

     
      
  • 该模型直接管理应用程序的数据,逻辑和规则。
  •   
  • 视图可以是信息的任何输出表示,例如图表或图表。相同信息的多个视图   可能的,例如管理条形图和表格视图   会计师。
  •   
  • 第三部分,即控制器,接受输入并将其转换为模型或视图的命令。
  •