我如何在 Yii 中使用模板引擎?

How do I use a template engine in Yii?

我想用 Yii 写一个程序,让用户有自己的模板。

我的解决方案是,每个用户在数据库中都有一条记录,以保留自定义模板,如 HTML 代码和一些语法,如 Smarty 或 Twig。

如何使用 PHP 获取记录并将其打印在屏幕上,然后我的模板引擎提取语法并显示最佳结果?那可能吗?我应该怎么做?

你真的知道如果你在数据库中保存 php 代码,当你将它们打印到文件中时,你保存在数据库中的 php 代码不会 运行。 对我来说,最重要的是将模板保存在数据库中 php 命令,然后在文件中回显它们,通常 php 代码 运行 也是如此。

但是使用 smarty 或 twig 很重要,不要让用户直接添加 php 代码。

对于用户界面模板,您可以在 Yii 中使用不同的布局。只需将不同的布局模板放在 ./views/layouts 文件夹中:

./views/layouts/main-template-1.php
./views/layouts/main-template-2.php
./views/layouts/main-template-3.php

和select根据用户执行操作时控制器中的布局,应该在控制器中知道。

编辑:无需从用户上传布局文件,您可以从数据库(HTML 框架)加载模板代码,然后在控制器中将布局和视图代码放在一起:

$contentWithoutLayout = $this->renderPartial('myview',...);
return $this->applyLayout(contentWithoutLayout, $layoutFromDb);

其中 applyLayout() 是合并布局和查看内容的方法。

我找到了答案。 只需将所有内容保存在数据库中,并在加载它们时使用 eval() 函数。 请参阅 php 和 w3school 中的文档。