代码之家  ›  专栏  ›  技术社区  ›  GreenMatt

习惯性的php网页创建

  •  0
  • GreenMatt  · 技术社区  · 15 年前

    我的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创建页面的常规方法吗?或者我应该把这一切都用在更好的方法上?

    我也知道” <? “(vs) <?php )是不受欢迎的;我只是在复制代码中的内容。

    6 回复  |  直到 15 年前
        1
  •  3
  •   Community CDub    8 年前

    好吧,这肯定不是 无效 这样做的方式-但它可能有点麻烦阅读和维护。在php中,我不会说有一种“正常”的方法来做这样的事情。最后,您将变量输出到html中,因此如果不使用专用的模板引擎(和/或朝着更基于mvc的方法发展,如 ryeguy )

    我的建议是:如果不适合你喜欢的款式,就换一种。最重要的是,如果你要开发和维护它,你可以舒适、高效地使用它。

        2
  •  3
  •   ryeguy    15 年前

    它是 有点 在MVC的正确轨道上。mvc就是关注点的分离。这里的想法是,第一个片段设置值,然后 pageheader.inc 输出它们。这就把逻辑排除在视线之外了。

    做得很草率。

        3
  •  2
  •   Cory House    15 年前

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

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

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

        4
  •  1
  •   erisco    15 年前

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

        5
  •  0
  •   niggles    15 年前

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

        6
  •  0
  •   Robert S. Barnes Antoni    15 年前

    你可能想看看oreilly.com上的这篇文章:

    Understanding MVC in PHP