我正在寻找将清漆实施到数据重/以用户为中心的网站中。如何使用使用 php 包含 html 模板的系统设置 ESI?我目前使用一个自定义 php 模板系统(类似于 MVC 设计模式),其工作方式如下:发出页面请求 -> php 计算逻辑 -> php 包含 html 模板页面并填写变量 -> 页面输出我只见过主要用于 html 页面的 esi 标签,包括 php 片段。像下面的代码:<HTML><BODY>The time is: <esi:include src="/php-includes/date.php"/>at this very moment.</BODY></HTML>但是可以反过来做吗?例如,在 php 页面中包含 html 片段的 esi 标签?与此类似:<?php//logic here$content = "this will be displayed on the content page"include("templates/header.html.php"); //esi would go here since page is static contentinclude("templates/content.html.php"); //no esi here, since page is dynamic contentinclude("templates/footer.html.php"); //esi would go here since page is static content?>
1 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
您只需要为您的特定 MVC 实现创建一种“ESI”渲染器,如在 中/esi.php?template=foo,然后在内部类似:
... whatever you need to boostrap your app in order to render a template ....
include("templates/$template.html.php");
.... exit so no header/fooder stuff is rendered, only template HTML of interest
当然不是那么简单,但简而言之就是类似的事情。
然后,我将在每个模板文件顶部放置一些逻辑以发出 HTML(如果由呈现esi.php或 ESI“功能”处于禁用状态)或<esi仅标记。
所以例如templates/header.html.php可以有(伪代码):
if esi (detect by checking request_uri to be esi.php) then echo '<esi /esi.php?template=header?somevar-from-parent=...'; return
---existing code--
- 1 回答
- 0 关注
- 106 浏览
添加回答
举报
0/150
提交
取消