惯用PHP网页创建

惯用PHP网页创建,php,idioms,Php,Idioms,我的PHP经验相当有限。我刚刚继承了一些对我来说很奇怪的东西,我想知道这是否是一种标准的做事方式。显示在浏览器位置(例如www.example.com/example_页面)的页面类似于: <? $title = "Page Title"; $meta = "Some metadata"; require("pageheader.inc"); ?> <!-- Content --> 然后pageheader.inc有如下内容: <? @$title = ($t

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

<?
$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 -->


当然,这不是一种无效的方法,但是阅读和维护起来可能有点麻烦。我不会说在PHP中有一种“正常”的方式来做这样的事情。最后,您将变量输出到HTML中——因此,如果不使用专用的模板引擎(和/或采用更基于MVC的方法,如中所述),就没有多种选择

我的建议:如果它不适合你喜欢的风格,就改变它。如果您要开发和维护它,最重要的是您可以舒适、高效地使用它。

它正朝着MVC的方向发展。MVC是关于关注点分离的。这里的想法是,第一个代码段设置值,然后
pageheader.inc
输出它们。这就排除了逻辑


它做得很草率。

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

PHP是一个非常分散的社区,没有“标准”的工作方式。也就是说,您发布的pageheader.inc示例似乎可以简化。上面的代码对您没有好处。仅此一项就足以:

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


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

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

@Skilldrick:谢谢你的修复!为清楚起见,
@
符号抑制错误。(在本例中,请注意变量未设置。)