习惯性的PHP网页创建

时间:2010-04-15 19:03:42

标签: php idioms

我的PHP经验相当有限。我刚刚继承了一些对我来说很奇怪的东西,我想知道这是否是一种标准的做事方式。显示在浏览器位置的页面(例如www.example.com/example_page)具有以下内容:

<?
$title = "Page Title";
$meta = "Some metadata";
require("pageheader.inc");
?>
<!-- Content -->

然后pageheader.inc有类似的东西:

<?
@$title = ($title) ? $title : "";
@$meta = ($meta) ? $meta : "";
?>
<html>
<head>
<title><?=$title?></title
</head>
<!-- and so forth -->

也许其他人觉得这种风格很有用,但这让我很困惑。我认为这可能是迈向基本内容管理系统的一步,但它在这里工作的方式我认为它增加了服务器必须做的处理,而不会减少Web开发人员的负担,足以让它值得付出努力。

那么,这是用PHP创建页面的常规方法吗?或者我应该采取所有这些措施来支持更好的方法吗?

另外,我知道“<?”(对比“<?php”)是不受欢迎的;我只是在复制代码中的内容。

6 个答案:

答案 0 :(得分:3)

嗯,这肯定不是无效的方式 - 但是阅读和维护可能有点麻烦。我不会说在PHP中有一种“正常”的方式来做这样的事情。在一天结束时,您将变量输出到HTML中 - 因此,如果不使用专用模板引擎(和/或朝向更基于MVC的方法,如{{3}所述),则没有多种选项})。

我的建议:如果它不符合您的首选风格,请更改它。最重要的是,如果您要开发和维护它,那就是您可以舒适,高效地使用它。

答案 1 :(得分:3)

有点走向MVC的正确轨道。 MVC就是关注点的分离。这里的想法是第一个代码段设置值,然后pageheader.inc输出它们。这使逻辑不在视图之内。

这很糟糕。

答案 2 :(得分:2)

PHP是一个非常分散的社区,没有“标准”的做事方式。也就是说,看来你发布的pageheader.inc示例可以简化。顶部的代码对你没有好处。仅这一点就足够了:

<html>
<head>
<title><?=@$title?></title>
</head>

如果您正在寻找有关架构和最佳实践的方向,我强烈建议您查看一个流行的PHP框架,如Codeigniter或Kohana。

答案 3 :(得分:1)

您可以使用两种方法,它们彼此相反。您有一种方法的示例,其中每个页面都有自己的内容,负责包括页眉,页脚和其他常见数据。这种方法没有什么特别的错误。第二种方法是让一个页面负责包含页眉,页脚,内容。这是使用流行的PHP框架的更常见的应用程序。

答案 4 :(得分:0)

我在简单的网站上使用了这种风格,比如5-10页的宣传册网站,我想要一些集中的代码,例如从一些变量创建菜单和页眉,但不想要一个完整的MVC结构,因为它是矫枉过正。

答案 5 :(得分:0)

您可能想在oreilly.com上查看这篇文章:

Understanding MVC in PHP