gpt4 book ai didi

php - 如何在 PHP 中将 HAML 模板拆分为不同的部分/包含?

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:04 25 4
gpt4 key购买 nike

我是一名 PHP 开发人员,尝试开始使用 HAML,使用以下实现: http://phphaml.sourceforge.net/

HAML 看起来很棒,但我不明白它是否/如何支持部分(或包含,因为它们在 PHP 世界中被称为)。

我想要一个主模板 HAML 文件,然后为所有小片段加载一堆部分。 (然后我也可以在其他模板中重用这些部分。)

在 PHP 或 Ruby 中这真的很容易,有什么方法可以用 HAML 做到这一点吗?谢谢!

迪伦

最佳答案

您可以通过类比 phpHaml 现有的 display_haml 方法来创建一个全局的 render_haml_partial 方法,它可能类似于:

function render_haml_partial($sFilename, $aVariables = array(), $sTmp = true, $bGPSSC = false)
{
$sPath = realpath($sFilename);
$haml = new HamlParser(dirname($sPath), $sTmp);
$haml->append($GLOBALS);
if ($bGPSSC)
{
$haml->append($_GET);
$haml->append($_POST);
$haml->append($_SESSION);
$haml->append($_SERVER);
$haml->append($_COOKIE);
}
$haml->append($aVariables);
return $haml->fetch($sFilename);
}

此方法可以放在 phpHaml 的 HamlParser.class.php 文件中,因此它可用于您的所有模板。

这个和 display_haml 之间的唯一区别是它在最后调用 fetch 而不是 display 并返回结果,这样你就可以将其就地插入到调用模板中。

然后您可以在 PHP/HAML 模板中使用它,如下所示:

= render_haml_template("path to partial")

这将与 Rails/HAML 语法非常相似:

= render :partial => 'path to partial'

请注意,直接使用 display_haml 不会产生完全相同的效果,因为它将模板直接渲染到输出,而不是将结果返回给调用者。因此,您可以执行以下操作:

- display_haml("path to partial")

但这并没有捕获渲染的结果。

我猜测对 phpHaml 足够关心的人最终可能会添加这样的 render_haml_partial 或类似的东西 - 我可能会在某个时候向作者建议它。

关于php - 如何在 PHP 中将 HAML 模板拆分为不同的部分/包含?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3781902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com