这一天终于来了,从此你不仅仅“不应该”利用mysql_函数。PHP 7 已经把它们从核心中全部移除了,也便是说你须要迁移到好得多的mysqli_函数,或者更灵巧的 PDO 实现。
2. 不要编写垃圾代码
这一条可能易于理解,但是会变得越来越主要,由于 PHP 7 的速率提升可能会隐蔽你的一些问题。不要仅仅知足于你的站点速率,由于迁移到 PHP 7 才让它变快。
为了理解速率有多主要,以及如何把事情做得更好,请看一看我们的文章速率优化入门指南。
作为一名开拓者,你该当总是确保按需加载脚本,尽可能连接它们,编写高效的数据库查询,尽可能利用缓存,以及其它。
3. 不要在文件末端利用 PHP 闭合标签
你可以看一看,当一个文件以 PHP 代码结尾时,WordPress 多数核心代码都把末端的 PHP 标签去掉了。实际上,Zend 框架特殊禁止了它。PHP 并不须要文件末端的闭合标签,并且我们可以通过去掉它来担保不会在后面添加任何的空缺字符。
4. 不要做不必要的引用通报
我个人不喜好引用通报。我知道有时候它很实用,但是其它情形下它使代码变得难懂,并且更难预测结果。
听说一些人认为它使代码运行更快,但是根据一些 PHP 高等程序员所说,这并禁绝确。
解释引用为什么不好的一个例子是,PHP 内建了shuffle()和sort()。它们修正原始数组,而不是返回处理后的数组,这很不合逻辑。
5. 不要在循环中实行查询
在循环中实行查询非常摧残浪费蹂躏。它给你的系统施加不必要的压力,并且可能能够在循环外部更快得到相同结果。当我碰着须要这样的情形时,我常日会利用两个分离的查询来办理问题,我会利用它们来构建数据数组。之后我会遍历数组,并不须要在这个过程中实行查询。
由于 WordPress 适用于这里,它可能有一些例外。虽然get_post_meta() 会从数据库获取大量数据,如果你正在遍历某个分外博文的元数据你可以在循环中利用它。这是由于当你第一次调用它的时候,WordPress实际上会获取所有元数据并缓存它们。后续的调用利用这些缓存数据,没有数据库的调用。
弄懂这些的最佳办法是阅读函数文档,以及利用类似 Query Monitor 的工具。
6. 不要在 SQL 查询中利用
当然,这个更像 MySQL 的问题,但是我们习气在 PHP 中编写 SQL 代码,以是都差不多。无论如何,如果可以避免的话,不要在 SQL 查询里利用通配符,尤其是数据库有很多列的时候。
你该当明确指定须要哪些行,并且仅仅获取它们。这有助于减少所用资源,保护数据,以及让事情变得尽可能清晰。
对付 SQL,你须要理解所有可用的函数,并且尽可能测试其速率。在打算均值、求和或打算类似数值时,要利用 SQL 函数而不是 PHP 函数。如果你不愿定某个查询的速率,测试它并且考试测验一些其它的编译 — 之后利用最好的那个。
7. 不要信赖用户输入
信赖用户输入是不明智的。始终校验、过滤、转义、检讨并留好退路。用户数据存在三个问题:我们开拓者并没有考虑每种可能性,它常日禁绝确,以及它可能是蓄意毁坏。
经由周密考虑的系统可以防护这些威胁。要确保利用类似filter_var()的内建函数检讨适当的值,以及在处理数据库时转义(或预编译)。
WordPress 拥有一些函数来办理问题。详见文章校验、转义和过滤用户数据。
8. 不要故作聪明
你的目标该当是编写优雅的代码,来更清晰地表达你的意图。你可能能够通过将任何东西缩短为一个单词的变量,利用多层的三元逻辑,以及其它手段,从每个页面中优化 0.01 秒。但这只会给你和你周围的人产生大麻烦。
合理命名变量,为代码编写文档,优先选择清晰而不是简洁。乃至还可以更好,利用标准的面向工具代码,它本身或多或少便是文档,不须要一大堆内联数值。
9. 不要重新发明轮子
PHP 到现在为止有很永劫光了,网站被造出来的韶光更长。很可能无论你须要造出什么,一些人之前早就造出来了。不症结怕向他人寻求支持,Github是你的好朋友,Composer也是,Packagist也是。
从日志工具到调色工具,从性能剖析器到单元测试框架,从 Mailchimp API 到 Twitter Bootstrap,每个东西都可以通过按下按键(或者敲下命令)来获取,利用它们吧!
10. 不要忽略其它措辞
如果你是个 PHP 程序员,现在有个好机会去至少理解 HTML、CSS、JavaScript 和 MySQL。当你能够更好地处理这些措辞时,便是重新学习 JavaScript 的机遇了。JavaScript 并不是 jQuery,你该当合理地学习 JavaScript 来更高效地利用它。
我也打算向你推举学习面向工具的 PHP,它可以节省韶光,并且在代码规模更大时会变得更好。对付类似 C# 和 Java 的措辞,在你理解 OOP 之后,它们也更易于理解。
通过理解包管理器、构建脚本、CoffeeScript、LESS、SASS、YAML 、脚本引擎和其它强大的工具来扩展你的知识面。我强烈向你推举看一看其它框架,尤其是 Laravel。
当你利用它们出色完成任务时,学习 Ruby、RoR、Android、iPhone 和 Windows Phone 运用开拓如何?你可能会认为这毫无意义,由于它们在你的舒适区和事情所需范围之外,但是这便是它们的意义。每种措辞都有一些要学习的实用的东西,以及从没碰到的新知识。所有 PHP 顶级开拓者都懂得很多其它编程措辞,这并非有时。