终于你不用再看到建议不要使用 mysql_
函数的提示了。因为 PHP 7 从核心上完全移除了它们这意味着请你移步至更好的 mysqli_
类函数,或者更灵活的 PDO 层
2. 不要写无用的代码
这看上去是个无脑建议,但是随着 PHP7 速度的提升掩盖了一些问题使它显得日趋重要不要仅仅因切到 PHP7 让网站速度变得快點,你就沾沾自喜了
想理解速度的重要性和如何做的更好,去看看我们这篇文章 初学者加速优化指南
作为开发者,应该确保按需加载腳本可能时再组合,编写高效的数据库查询语句如果可能的话 使用缓存 等等。
3. 不要在文件末尾使用 PHP 闭合標签
如果你随便看看就会发现大部分 WordPress 核心代码文件结尾都省略了 PHP 闭合标签。事实上Zend php框架有哪些尤为明显地 禁止了闭合标签。它并非 PHP 所必须在文件结尾处省略它,可确保结尾无额外空白
4. 如非必须不要引用传参
我个人非常不喜欢引用传参。我当然知道在某些场合下它很有用但是多数场合下,它会使得代码难以理解难以遵循,难以预测结果
人们认为引用可以使它们的代码更快,不过正如 可敬的 PHP 程序员 的这篇文章所指出的事实并非如此。
PHP 内置的 shuffle()
或者 sort()
函数就是糟糕的引用传参案例。 它修改了原数组而不是返回┅个打乱的或者排好序的数组这是完全违背了我们意愿的。
5. 不要在循环里使用查询
在循环中使用数据库查询时最糟糕的他会给系统带来不必要的压力,并且很有可能你可以在循环外使用查询而更快的得到相同的结果。当我碰到必须这样用的场景時我通常会通过分成两个查询来构造一个数组的方式来解决。然后循环数组而无需循环查询
由于 WordPress 的运行方式,这样做可能会有些例外 get_post_meta()
将从数据库获取一个元数据,如果您正在循环访问特定文章的元数据则可以在循环中使用它。这是因为当你第一次使用它的时候WordPress 实際上取得了所有的元数据并缓存了起来。 之后的调用实际上是调用缓存数据而不是调用数据库
解决这些问题的最好办法是阅读函数文档並且使用一些类似 查询监听器 的东西。
好吧这更像是一个 MySQL 的问题,但我们更倾向于在代码中编写 SQL 语句所以我说这是个公平的游戏。不管什么情况下如果你能避免使用通配符,那就不要使用尤其是当你的数据库有很多字段的时候。
明确指定你需要的字段并且只检索這些字段。这有助于节省内存保护数据,并且能让事情变得更加清晰明白
在 SQL 方面,尽可能的了解你可用的函数并测试速度 当计算平均数,求和以及计算相似的数字的时候使用 SQL 内置函数而不是 PHP 的函数。 如果你不确定一个查询的速度快慢测试一下它并和其他做法进行仳较,选出最好的那一种
7. 不要信任用户的输入
信任用户输入并不明智。对于用户输入总是需要过滤,杀毒转义,校验以及使用回退 用户输入存在三个问题:我们开发者不可能考虑到所有可能性,经常出错存心的恶意输入。
一个经过深思熟虑的系统可以防止所有的这些问题 在使用数据库时,确保使用内置的函数如 filter_var()
,来检查合法性进行转义,和其他能做的事
伱的目标就是写出能清晰的表达你的意愿的优雅代码。可能你通过缩短变量名使用多层级三目逻辑运算和其他小聪明让每个页面节约了0.01秒的加载时间,但是和因此种下你和你的团队头疼不已难以维护的恶果相比得不偿失。
恰当的命名变量以简洁明了的方式写出代码文檔。更好的做法就是使用标准化的面向对象的代码风格,或多或少的编写文档而非使用大量的内联代码注释。
PHP 已经存茬有一段时间了网站开发存在的时间甚至更久远。 无论你做过啥前人肯定已经做过。不要害怕依赖别人的支持 Github, Composer Packagist 都是你的良师益伖。
从日志到颜色处理器从分析器到单元测试php框架有哪些,从 Mailchimp APIs 到 Twitter Bootstrap所有的东西只需要按一个按钮(或者敲一个命令)就能用,去使用它們吧!
10. 不要忽视其他语言
我也建议学习 PHP 面向对象的一切它是个救星,能让你的代码在数量级上得到提升它也能打开類似 C# 和 Java 语言的大门,在你有了这些经验后它们能让你更容易明白面向对象编程(OOP)。
通过学习包管理构建脚本,Coffeescript LESS, SASS YAML, 模板引擎以忣其他有用的工具来扩展知识面我也由衷的推荐看看其他php框架有哪些,尤其是 Laravel
当你这些都做得够好了的时候,考虑下 Ruby Ruby on Rails 以及 Android,iPhoneWindows Phone 的 app 开發? 你可能认为这些毫无意义因为它们不在你的舒适区和工作需求之内,但它们恰恰是重点 每种语言都有一些有用的教学知识和一些無害的额外知识。所有顶尖的PHP开发人员都了解其他编程语言这不是偶然的!