PHP命名规范

发现公司项目都一直没有统一过编码规范,于是把自己已经养成的编码规范整理了下,以后如果团队作战时仍然未统一规范自己的部分就按照自己的规范来写.利人利己~~~

类的规范

  1. 类命名: 每个字母的第一个单词都大写,不使用下划线'_'
  2. 类属性命名: 驼峰命名法,protected属性使用下划线'_'开始,private属性使用'_'开始和结尾
  3. 类方法命名: 命名一般应用动词开始,名称就能看出其用途,采用驼峰命名法
  4. 方法的参数: 采用驼峰命名法

变量: 全部采用小写,每个单词用下划线'_'隔开

  1. 引用变量: 以"r_"作为前缀
  2. 全局变量: 以"g_"最为前缀
  3. 常量,全局常量: 全部采用大写,单词之间用下划线'_'隔开
  4. 静态变量: 以"s_"作为前缀

函数: 名称必须有意义,全部使用小写,多个单词使用下划线"_"来分割

记一次找虫的体会

昨天临近下半时收到测试的反馈,有个功能应该对数据库某个字段执行increment操作,但实际上却是decrement操作,怪哉,于是今天一大早就开始各种测试,看API代码,没错.测试,我这边正常.结果测试那边依旧如此.怪哉.再找,欸,还有漏掉了一个逻辑,优化下.测试,正常.结果测试仍然反馈错误.怒了,找了几个iphone测试机一一测试,正常,但就是有一台越狱的iPhone不正常.本以为是越狱后不正常的结果,放手做其他事.结果....

下午测试换了一台没有越狱的iPhone,测试,问题依旧.抓狂>_<再抓包,后台直接请求API,正常.最终一同事说看下我的代码.最终终于发现了异常.有一个bug会在特定情况下发生,于是就有了如上的那一幕.看到源代码,瞬间想拍死自己.自己明明逻辑是那样的结果居然没写!!!!

忙活了一个上午,事情终于完成.深刻教训:找虫是一个一定要仔细的过程,一定要按照程序的流程一步步跟踪.程序没有错,只有人会错!
PS:同事赞了我的代码可读性和风格.继续保持:-)

thinkphp关联模型as_fields无用解决办法

用tp不是很多,最近自己的一个小东西准备用tp开发,于是仔细看了文档,才发现以前的各种left join什么的用thinkphp关联模型方便很多,于是便研究了下,结果发现关联模型中的as_fields设置后无效,文档又写得比较简单,google了下很久,最后终于发现了解决办法.记录下.

假设有以下数据表:

- 全文阅读 -

SESSION的存储与区分每个用户

在写一个有趣的东西,本想就自己用的,突然觉得都用了高达上的阿里云了,一个人用太浪费资源了,那就让大伙儿都用吧.于是准备写成多用户版.

既然写成了多用户,那么登陆验证就很关键了.cookie+session是必须的,当然验证思路和逻辑也很清晰.但是,头脑短路了那么一会儿,我如何区分不同用户呢?假如我都用$_SESSION['uid']来判断,不是不能区分吗?

2货,session会给每个会话分配一个随机生成的基本不可能伪造/重复的session_id的,$_SESSION['uid']是基于该session_id下的,会重复吗孩子????!!!!

php中GET变量键值有'.'的读取问题

在manual上看到的,做下记录.如果我们的GET值中有'.'符,我们直接写会报错,解决办法是把'.'换成'_'符号.比如这个地址"localhost/test.php?a.b=123".'test.php'的代码如下所示:

echo $_GET['a.b'];

得到的会是"Undefined index: a.b"这样一个错误,解决办法是换成"echo $_GET['a_b']即可"

关于php中的注释

计划把manual看一遍,加之提高下英语水平,于是选择了英文版的manual.每天闲暇的时候看,希望3个月以内能够看完第一遍吧:)

不得不说,收获蛮大的,比如说这个注释,虽然很简单.不外乎就是//,/**/以及asp风格的#,但是,如果没有看过手册看到下面的这个问题绝对会疯狂找这个"看起来完全没有bug"的代码:

<?php
    echo 'hello world';
    //echo 'I love u!';?>I am a genius!
?>

- 全文阅读 -

人性八宗罪

疑心病

有疑心病的人,总是虚构一些因果关系去解释别人为什么会有这样的举止言谈。如有位妇女见到别人小声交谈,就认为是在议论她。

争公平

企求绝对公平的结果,总是抱怨对自己的不公平,嫉恨比自己强的人。

应该论

许多人的情绪被“应该论”所操纵。例如如果我对某人好,他就应该对我表示感谢,否则,就会郁郁寡欢。

- 全文阅读 -