2

我有一个 php 文件和一堆 HTML 元素,其中包括:

  1. 标题
  2. css
  3. 重复使用的“间隔”元素,静态
  4. 一堆模板,它们从 PHP 代码中获取参数来插入什么

基本上,我想知道将所有这些文件放入其中的正确方法是什么。我猜我的文件夹中应该有一个 file.css,php 会吞入内存并放入标题信息。间隔元素是否应该保存为“spacer.html”,并且 PHP 会将它的一个副本吞入一个字符串并在必要时将其放入 HTML 中?或者所有这些都应该作为字符串常量存在于 PHP 中吗?

动态“模板”元素有点棘手,因为我不确定如何分隔 HTML 并让它具有参数被放入的标记。

4

3 回答 3

2

你应该看看MVC。现在流行的一个是CodeIgniter。这个想法是您使用那些 HTML“模板”并创建 (V) 视图。PHP 使用 (C) 控制器来引导用户并调用 (M) 模型来获取数据,然后将适当的变量发送到浏览器的 (V) 视图。

于 2012-05-24T20:44:44.480 回答
2

我注意到其他一些回答者(SP)提到了 MVC。MVC 非常重要,因为它允许您将业务逻辑与“视图”显示/UI 层分离,并将数据库逻辑与业务逻辑分离。

就像 AlienWebguy 一样,我推荐 Code Igniter,但还有许多其他优秀的 PHP 框架。

就您所问的问题而言,您应该如何构建视图层和业务逻辑。如果我有一些常见的东西,比如页眉和页脚,我会把它们放进去

view/include/header.phpview/include/footer.php

头文件通常包含<html>标签、样式表链接、任何常见的 javascript 脚本文件和一个常见的头文件(如徽标和导航)。页脚文件通常包含版权信息、任何页脚链接和</body></html>.

一般来说,在有效地创建视图时,您应该做的是让它们处理模型对象以显示 HTML,并且在控制器层中绝对不生成 HTML。例如

<table>
<?php
foreach ($users as $user) {
    printf('<tr><td>%s</td><td>%s</td></tr>', $user->id, $user->user_name);
}
?>
</table>

这样做可以避免在错误的“层”上散布关注点,从而使事情变得更清晰。

如果您对在视图中直接编写 PHP 不感兴趣,您可以做的另一件事是使用模板引擎。代码点火器包括对(但您不必使用)模板引擎的支持。

于 2012-05-24T20:57:40.677 回答
1

我通常建议使用一些好的 ol' php 包含来解决这个问题。

明智的文件结构,我可能有一个index.php文件——它(对#4 中的模板了解不多)会概述页面。您可以在header.html页面中调用或将标题放在index.php文件中。

css 文件最好命名为:(style.css这是非常标准的),您可以从头文件中调用它。

不确定您是否了解这一点,但您可以在.php文件中包含 HTML。您只需将文件命名为:index.php然后您的代码可以是:

<p>This is HTML.</p>

<?php echo("This is PHP."); ?>

并将它们混合在一起。

于 2012-05-24T20:48:26.107 回答