如果我不在我的PHP中使用模板引擎,我的代码应该是什么样的?

joh*_*nny 4 php templates

我不想使用MVC框架.我不想使用模板引擎.我是几个男人开店所在地的所有帽子,没有图形艺术家.我们全力以赴(所有层次).我不希望代码与演示文稿混合,就像我使用Classic ASP一样.

但是,我不知道我的代码在服务器端和实际演示之间看起来是什么样子.

如果我没有在我的服务器端代码中发布HTML,它是如何进入HTML页面的,所以我可以做类似的事情<span><?= $myvar ?></span>?并将循环放在html页面中?

谢谢你的任何建议.

jVa*_*ron 5

对于使用循环和所有,我使用控制结构的替代语法.

一个例子:

<div id="messages"<?php if(!(isset($messages) && count($messages))): ?> class="hidden"<?php endif; ?>>
    <?php if(isset($messages)): ?>
    <?php foreach($messages as $message): ?>
    <div class="message"><?php echo $message; ?></div>
    <?php endforeach; ?>
    <?php endif; ?>
</div>
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅:http://php.net/manual/en/control-structures.alternative-syntax.php

哦,我也使用了一个半MVC结构,我有一个处理模板(视图)的类,基本上它只是一个我创建实例的类,传递一组变量,然后在实例被销毁时渲染模板.我在该类中有一个变量数组,然后使用extract来传递include中的所有变量,如下所示:

extract($this->variables, EXTR_SKIP);
include($this->file);
Run Code Online (Sandbox Code Playgroud)

编辑:这是Smarty中的相同示例:

<div id="messages"{if isset($messages) && !count($messages)} class="hidden"{/if}>
    {if isset($messages)}
    {foreach from=$messages item=message}
    <div class="message">{$message}</div>
    {/foreach}
    {/if}
</div>
Run Code Online (Sandbox Code Playgroud)