【问题标题】:PHP coding standardsPHP编码标准
【发布时间】:2008-11-20 22:23:24
【问题描述】:

我一直在寻找一些关于如何布局 PHP 代码的指南。我找到了一些很好的参考资料,例如:

http://www.dagbladet.no/development/phpcodingstandard/

this question 在 SO。

但是,这些都没有完全解决我特别想知道的问题,即 HTML 和 PHP 的集成。例如:

  1. 是否可以有一个以 HTML 标记开头并且只在需要的地方插入 PHP 的 PHP 文件?还是应该只拥有一段包含所有内容的 PHP 代码?
  2. 如果你有一大段 PHP 代码,中间是一组 echo,只输出固定位的 HTML,是不是跳出 PHP 直接放入 HTML 更好?
  3. 是否应该在专用的 PHP 文件中定义所有函数,还是可以在文件顶部定义一堆函数并稍后在同一个文件中调用它们?

我可能还有其他问题想问,但实际上我正在寻找某人向我指出某种在线资源,该资源提供有关如何将 HTML 和 PHP 组合在一起的一般概念的指导。

【问题讨论】:

  • 第一个链接:"SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data"
  • 第二个链接是已删除的问题“PHP 应用程序的良好标准代码布局是什么?”.

标签: php coding-style


【解决方案1】:

结合编程代码和输出数据(包括 HTML)恕我直言是一个非常糟糕的主意。我认识的大多数 PHP 大师都使用 Smarty 之类的模板引擎来帮助将两者分开。

【讨论】:

    【解决方案2】:

    对于这些事情真的没有一个单一的通用标准。从这个意义上说,大多数语言比 PHP 更严格。

    在后来的几年中,出现了许多所谓的框架,其中包括为从命名到放置文件的位置以及代码应遵循的样式等所有内容定义一组规则。周围有几个框架,所以你不能真正选择一个并将其称为标准。然而,大多数框架都有一个共性子集。例如,大多数都遵循PEAR Coding Standards 的一些变体。

    【讨论】:

      【解决方案3】:

      我通常会尝试遵循该语言的核心库设置的标准....哦等等。

      说真的 - 您应该尝试在任何 Web 应用程序中遵循 MVC pattern,因为无论语言如何,这几乎都是标准做法。在 PHP 中,这可以通过将index.php 视为您的控制器并按文件分离数据逻辑和表示来以快速而简单的方式实现。这个小步骤至少可以让您在选择时将代码迁移到功能齐全的框架。

      【讨论】:

        【解决方案4】:

        尽可能使用模板引擎。如果您还没有学习过,或者不想要开销(这是最小的),请使用导致您使用快速而肮脏的模板的做法:

        • 不显示任何内容的函数在显示内容的文件中没有位置。
        • 打印变量,而不是 HTML。每当输出 HTML 时,跳出 PHP 并使用打印语句编写 HTML 以处理所需的任何小细节(表单的操作、控件的 ID 等)。
        • 请记住,当您包含一个打破 PHP 的文件以打印内容时,将被视为与您在主文件中执行此操作相同。因此,您可以创建仅包含 PHP 文件的简单模板,这些文件将在正确的位置打印变量。您的 index.php(或其他)会完成所有实际工作,但所有显示均由辅助“模板”完成。

        许多 PHP 教程混合了逻辑和显示代码。我花了好几年的时间才改掉鼓励我的坏习惯。根据我的经验,你不能在 PHP 中过多地分离事物,如果你不反对它,熵会将你拉向混合代码。

        【讨论】:

        • 我认为 php 本身就是一个模板引擎......你可以很好地生存而不添加 smarty 等。唯一一次我会考虑这样的事情是如果我让第 3 方在线编辑模板等,我想限制他们可以做的事情。
        【解决方案5】:

        编码标准应该不仅仅是如何布局你的语法,但遗憾的是它们在 PHP 中往往是这样的。

        FWIW,phc 将以 Zend 样式漂亮地打印您的代码。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-05-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-15
          相关资源
          最近更新 更多