PHP 作为一种钝器
我听说 PHP 最近经常受到抨击。在相当多的项目中,我看到了疯狂的 php 代码库——太糟糕了,你真的想知道这个人在编写代码时是否服用了致幻药物。有时,我想知道如果最初的开发人员对不做什么有更多的指导,代码会是什么样子。
然而,我也看到了一些组织良好的 PHP 项目,这些项目是 100% OOP 完成的,维护起来很愉快,但它们不是由“php 程序员”编写的。
我给我们所有的初级开发者一个指向Java Anti-Patterns的链接。该页面的优点之一是特定于 Java 的示例,因为 Java 的许多特性会导致常见错误。我希望找到一个类似的 php 列表,但谷歌搜索并没有发现任何有意义的东西。
对于开发人员在编写 PHP 时应该知道的内容,已经存在一些问题,但我想关注负面的。
您在 PHP 中看到哪些应该避免的常见事情,以及以更好的方式做同样事情的常见解决方案是什么?
一些对我来说很明显的例子,我认为会被提及但不是特定于 PHP 的:
- 不要连接 SQL。使用准备语句或适当的转义。
- 不要盲目地将 PHP 嵌入 HTML - 使用模板/MVC。
- 不要盲目地发布未经过滤的原始用户输入 - 清除它以进行 XSS 攻击。
- 不要手动尝试解析所有 POST 和 GET - 使用 Web 框架。
以下是一些我认为 PHP 特定的示例:
- 不要有太多层文件包含/需要链接,并尽量避免条件链接。相反,要有一个合理的命名约定并与您的组织保持一致。
- 除非您能提供帮助,否则不要使用 PHP 的原始数据库 API,而是使用ADODB之类的数据库框架。
- 不要过度使用 PHP 的动态类型,在一个地方将变量设置为字符串,在其他地方设置布尔值,然后期望布尔测试有意义。
那么,你最喜欢的 PHP不做的事情是什么,你是如何做到的呢?