总结的一些PHP开发中的tips(必看篇)


Posted in PHP onMarch 24, 2017

一、开发习惯和php代码

1、准确的理解各种概念。现在的新东西层出不穷,望文生义和一知半解对开发工作有害无益;//比如我就碰到有人理解松散耦合(这个东西不新)的概念居然是要求代码不要有空行,否则你的程序就是“太松散”了

2、代码美观,适当的空行、缩进,空格,这样能更容易理解代码段的意思;

3、一定要写注释,而且要恰当的注释,要不然后面的维护工作或者接手代码的人会痛哭不已;

4、静态方法、类访问权限、接口、抽象类应该综合起来使用,发挥各自特点;

5、不要复制粘贴,即使是要用到现成的代码,也要一行一行的审阅后,再加入到新项目,因为经验告诉我们,这太容易出错了,对于使用开源类这种大段代码更需要;

6、变量都要初始化;

7、不要只处理error,而忽略warning和notice,这可能会导致日后的莫名其妙的问题,项目在开发状态下应该是error_reporting( E_ALL  ^  E_NOTICE ),等到发布的外网生产环境时,应关闭所有错误报告display_errors=Off,error_reporting(0)

8、记录一些必要的错误日志,比如写文件失败、写memcache失败,socket连接失败、读写数据库失败,日志能够帮助出现问题时的快速定位,外部生产环境我个人是强烈建议关闭所有错误报告的;

9、用try、catch捕获异常,对代码的健壮有帮助,常常在API接口中碰到,这样子显得友好多了;

10、双引号中出现的变量建议加上大括号,至于是”${nider}at gmail.com”还是”{$tom}at zendstudio.net”看个人习惯,我更喜欢后面一种;

11、尽量少的if else嵌套层数,也许你要表达一个非常复杂的逻辑算法,但这样做至少能让代码逻辑更清晰

12、多阅读网上开源项目的优秀代码(不是优秀项目的开源代码),吸取其中值得借鉴的地方

13、语言包用sprintf的格式化来做是多么惬意的一件事啊!

14、写缓存并不总是要先serialize一次的

15、AJAX传数据的时候,不要将数据库查出的数组直接json_encode后传给客户端,这样做不仅有一定的安全风险(字段名暴露),而且一些不需要的数据被传出浪费带宽,这条同样适用于API接口

16、要记得处理魔术变量,我的方法是直接关闭,当然也可以获取开关状态来避免传输数据被处理两次的问题

17、用$GLOBALS[\'var\']代替global $var

18、不能轻易的die掉程序,尤其是在方法内部

19、require、require_once、include、include_once有着略微不同的应用场景

20、为了最大限度的使得写入缓存成功,可以结合重试次数+usleep,我一般重试3次,还不行那就记下一条log了

21、PHP的常量是个非常好的东西,很多开源项目中用一整个文件来定义要用到的常量

22、尽可能的使用绝对路径寻找文件

23、autoload是个很灵活的东西

24、最好用上set_error_handler和set_exception_handler,那显得你的项目更完美

25、PHP的引用类型是很高效的,在进行复杂运算时建议使用

26、@符号抑制错误是很耗性能的,因此尽可能的找到替代方案

二、MYSQL部分

1、SQL语句用双引号,其中的值都用单引号,例如”INSERT INTO gril SET money='{$iMaxMoney}',age='18′”

2、用mysqli扩展代替mysql扩展

2、用mysqli_real_escape_string和mysqli_escape_string处理传出sql语句中的变量

3、用mysqli_set_charset(mysqli->set_charset)代替 query “SET NAMES”

4、联合查询(JOIN)之前,考虑下各个表的数据量,不合适的话应该分开查,尤其是有缓存可用的时候

5、很多地方需要记录发生时间,但不是每一个表都需要,同样,不是每一个表都需要一个自增量作主键

6、很多时候为integer类型加上unsigned是很好的

7、INERT DELEYED、INSERT IGNORE、SELECT DISTINCT…这种语句通常有意想不到的好效果

8、varchar类型并不是不能超过255长度,而是超过了255,这个字段就不能建立索引了,所以,看你的实际需要了

暂时就想到这么多,等再想到的继续update吧。想到什么写什么,没有什么条理性,多多包涵了,如果这些对你有点滴帮助,那我就感到非常开心了。

最后一条终极建议就是??多和别人交流能够进步更快、更大!欢迎与我交流,留下你的宝贵意见。

以上这篇总结的一些PHP开发中的tips(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
删除及到期域名的查看(抢域名必备哦)
May 14 PHP
php引用计数器进行垃圾收集机制介绍
Sep 19 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 PHP
php判断ip黑名单程序代码实例
Feb 24 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
Jan 07 PHP
Yii2前后台分离及migrate使用(七)
May 04 PHP
php结合mysql与mysqli扩展处理事务的方法
Jun 29 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
Oct 12 PHP
php rmdir使用递归函数删除非空目录实例详解
Oct 20 PHP
PHP jQuery+Ajax结合写批量删除功能
May 19 PHP
详解cookie验证的php应用的一种SSO解决办法
Oct 20 PHP
thinkphp中U方法按路由规则生成url的方法
Mar 12 PHP
CI(CodeIgniter)框架实现图片上传的方法
Mar 24 #PHP
PHP的自定义模板引擎
Mar 24 #PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
Mar 24 #PHP
利用ajax和PHP实现简单的流程管理
Mar 23 #PHP
CodeIgniter框架基本增删改查操作示例
Mar 23 #PHP
Paypal实现循环扣款(订阅)功能
Mar 23 #PHP
PHP+JQUERY操作JSON实例
Mar 23 #PHP
You might like
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
解析php中const与define的应用区别
2013/06/18 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
php实现字符串首字母转换成大写的方法
2015/03/17 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
js的touch事件的实际引用
2014/10/13 Javascript
jQuery实现新消息在网页标题闪烁提示
2015/06/23 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
2015/09/02 Javascript
关于input全选反选恶心的异常情况
2016/07/24 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
vue制作toast组件npm包示例代码
2020/10/29 Javascript
[00:56]跨越时空加入战场 全新祈求者身心“失落奇艺侍祭”展示
2019/07/20 DOTA
Python实现扩展内置类型的方法分析
2017/10/16 Python
PyQt5每天必学之切换按钮
2020/08/20 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
Manuka Doctor英国官网:真正的麦卢卡蜂蜜和护肤品
2018/10/26 全球购物
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
2015年个人审计工作总结
2015/04/07 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android