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