Closed. This question is opinion-based。它当前不接受答案。












想要改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。

3年前关闭。



Improve this question




PHP作为一种钝器

我听说PHP最近遭到了很多抨击。在相当多的项目中,我看到了疯狂的php代码库-太糟糕了,您真的很想知道该人在编写代码时是否正在使用致幻剂。有时,我想知道如果最初的开发人员对不该做的事情有更多的指导,代码会是什么样子。

但是,我还看到了一些组织良好的PHP项目,这些项目以100%OOP完成,并且很高兴维护,但是它们不是由“php程序员”编写的。

我给我们所有的初级开发人员提供了Java Anti-Patterns的链接。该页面的优点之一是特定于Java的示例,因为Java的许多功能很容易导致常见错误。我希望找到类似的php列表,但是Google搜索没有发现任何有意义的内容。

what a developer should know when programming PHP已经有一些问题了,但是我想集中讨论负面问题。

您应该避免在PHP中看到哪些常见的问题,以及以更好的方式完成相同操作的常见解决方案是什么?

我认为一些显而易见的示例将被提及,但并非特定于PHP:
  • 不要连接SQL。使用prepare语句或适当的转义。
  • 不要盲目地将PHP嵌入HTML中-使用模板/MVC。
  • 不要盲目发布未经过滤的原始用户输入-对其进行擦洗以防XSS攻击。
  • 不要手动尝试解析所有POST和GET-使用Web框架。

  • 以下是一些我认为特定于PHP的示例:
  • 文件的包含/请求链接没有太多层,请尝试避免条件链接。而是要有一个合理的命名约定,并与您的组织保持一致。
  • 除非可以帮助,否则不要使用PHP的原始数据库API,而应使用ADODB之类的数据库框架。
  • 请勿过度使用PHP的动态类型,方法是在一个位置将变量设置为字符串,在其他位置将其设置为 bool 值,然后期望 bool 值测试有意义。

  • 那么,您最喜欢的PHP是什么?如何正确使用呢?

    最佳答案

    我不同意这一点:

  • 不要盲目地将PHP嵌入HTML中-使用模板/MVC。

  • PHP是模板语言。尽管我同意实现MVC的概念,但我不明白为什么要围绕产生Web输出实现另一个DSL的要求。

    关于php - 您知道哪些特定于PHP的反模式? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/793267/

    10-10 00:24
    查看更多