1。不要再使用mysql_类函数终于不用再看到建议不要再使用mysql_类函数的提示了。因为PHP7将它们从核心中完全移除,这意味着您转向更好的mysqli_类函数,或者更灵活的PDO层。2.不要写无用的代码这似乎是一个无需思考的建议,但随着PHP7的速度掩盖了一些问题,它变得越来越重要。不要因为切换到PHP7后网站速度更快而沾沾自喜。要了解速度的重要性以及如何做得更好,请查看我们的文章速度优化初学者指南。作为开发人员,您应该确保按需加载脚本,尽可能组合它们,编写高效的数据库查询,尽可能使用缓存等。3.不要在文件末尾使用PHP结束标记如果环顾四周,您会发现大多数核心WordPress代码文件都省略了文件末尾的PHP结束标记。事实上,ZendFramework特别禁止结束标签。PHP不需要它,在文件末尾省略它可确保末尾没有多余的空格。4.除非万不得已,否则不要引用和传递参数。我个人不喜欢引用和传递参数。我当然知道在某些情况下它是有用的,但在很多情况下,它会使代码难以理解,难以遵循,也难以预测结果。人们认为引用会使他们的代码更快,但正如TheRespectablePHPProgrammer的这篇文章所指出的,事实并非如此。PHP的内置shuffle()或sort()函数是通过引用传递的坏例子。它修改了原始数组,而不是返回一个打乱或排序后的数组,这完全违背了我们的意愿。5.不要在循环中使用查询最糟糕的事情是在循环中使用数据库查询。它给系统带来了不必要的压力,而且很有可能,您可以在循环外使用查询来更快地获得相同的结果。当我遇到必须这样做的情况时,我通常通过将查询拆分为两个来构造一个数组来解决它。然后循环遍历数组而不循环查询。由于WordPress的运行方式,可能会有一些例外情况。get_post_meta()将从数据库中获取元数据,如果您要遍历特定帖子的元数据,则可以在循环中使用它。这是因为WordPress实际上会在您首次使用时获取所有元数据并将其缓存。后续调用实际上是调用缓存的数据,而不是调用数据库。解决这些问题的最好方法是阅读函数文档并使用类似查询监听器的东西。6.不要在SQL查询中使用*好吧,这更像是一个MySQL问题,但我们更倾向于在代码中编写SQL语句,所以我认为这是公平的游戏。无论如何,如果可以避免使用通配符,就不要使用它们,尤其是当您的数据库有很多字段时。准确指定您需要的字段,并仅检索这些字段。这有助于节省内存、保护数据并保持清晰。在SQL方面,尽可能多地了解你可以使用的函数并测试速度。在求平均、求和和计算相似数字时,使用SQL内置函数而不是PHP函数。如果您不确定查询的速度有多快,请对其进行测试并将其与其他方法进行比较以选择最佳方法。7.不要相信用户输入相信用户输入是不明智的。对于用户输入,总是需要过滤、清理、转义、验证和使用回退。用户输入存在三个问题:我们开发者不可能考虑到所有的可能性,错误频发,故意恶意输入。一个经过深思熟虑的系统可以防止所有这些问题。使用数据库时,请确保使用filter_var()等内置函数来检查合法性、转义等。WordPress有很多功能可以帮助您。查看本文以了解有关验证、转义和清理用户数据的更多信息。8.不要自作聪明你的目标是写出优雅的代码,清楚地表达你的愿望。或许您通过缩短变量名、使用多级三元逻辑运算和其他聪明方法节省了每页0.01秒的加载时间,但这不值得为您和您的团队带来头痛和困难的维护后果。正确命名变量并以简洁明了的方式编写代码文档。更好的是,使用标准化的面向对象的编码风格,或多或少有详细记录,而不是使用大量内联代码注释。9.不要重新发明轮子PHP已经存在了一段时间,而Web开发已经存在了更长的时间。无论你做什么,其他人以前都做过。不要害怕依赖他人的支持,Github、Composer、Packagist都是你的良师益友。从日志记录到颜色处理程序,从分析器到单元测试框架,从MailchimpAPI到TwitterBootstrap,一切都只需按下一个按钮(或一个命令)即可,去使用它们吧!10.不要忽视其他语言如果你是PHPer,现在的标准做法是至少了解HTML、CSS、Javascript和MySQL。当你能很好地处理这些语言时,是时候重新学习Javascript了。Javascript不是jQuery。您应该学习Javascript才能有效地使用jQuery。我还建议学习有关面向对象的PHP的所有内容。它是救命稻草,可以将您的代码改进几个数量级。它还打开了C#和Java等语言的大门,一旦您有了这种经验,就可以更轻松地理解面向对象编程(OOP)。通过学习包管理、构建脚本、Coffeescript、LESS、SASS、YAML、模板引擎和其他有用的工具来扩展您的知识。我也衷心建议查看其他框架,尤其是Laravel。当你对这些足够好时,考虑一下Ruby、RubyonRails和Android、iPhone、WindowsPhone的应用程序开发?您可能认为这些毫无意义,因为它们超出了您的舒适区和工作要求,但它们正是重点。每种语言都有一些有用的教学知识和一些无害的额外知识。所有顶级PHP开发人员都了解其他编程语言,这绝非偶然!如需更多现代PHP知识,请访问Laravel/PHP知识社区
