【发布时间】:2016-01-14 22:11:14
【问题描述】:
Flexy 缺乏文档,也许正因为如此,我真的一点也不喜欢它。我想在我的模块中使用常规 PHP,可能吗?
最好的解决方案是,如果我可以将 PHP 仅用于我的模块,而不是在整个站点范围内应用它。
谢谢。
【问题讨论】:
标签: php template-engine x-cart
Flexy 缺乏文档,也许正因为如此,我真的一点也不喜欢它。我想在我的模块中使用常规 PHP,可能吗?
最好的解决方案是,如果我可以将 PHP 仅用于我的模块,而不是在整个站点范围内应用它。
谢谢。
【问题讨论】:
标签: php template-engine x-cart
尽管不建议这样做,但您绝对可以通过在每个 View 类中重写 display() 方法来做到这一点。 \XLite\View\AView 类中描述了基本实现。您可以在 View 类中覆盖它以在缓冲区中打印自定义 php 脚本的输出,如下所示:
public function display($template = null)
{
include 'custom_php_template.php';
}
虽然具有类似内容的“custom_php_template.php”:
<?php
echo 'Hello world';
请注意,这只是一个简单的例子,真正的逻辑可能要复杂得多。此外,通过使用这种方法,您可能需要自己创建或调整现有的缓存解决方案和其他东西。
【讨论】:
$path.'body.tpl' 替换为 $path.'body.php'。然后我从 AView 类中获取 display() 函数,注释掉这一行:$compiled = \XLite\Singletons::$handler->flexy->prepare($normalized); 并将行从 include $compiled; 更改为 include $normalized;。现在看起来还可以。再次感谢您!