PHP的编码规范、小技巧和注意事项等
2015-09-29
前言
龙霆断断续续学PHP快两年了,自认是小有所成,目前在一家互联网创业团队里依靠PHP拿着还不错的月薪(当然也会继续努力的)。只是以前一个人开发时随性惯了,下划线?驼峰命名?想用啥就用啥,导致现在团队开发出现不少命名上的问题。说大不大说小不小,项目越大,看着自己四处开花的命名方式也越蛋疼。这不,总算下定决心给自己统一一下命名规范了。百度翻了许久,每个人的命名方式果然不尽相同。算啦,还是去翻翻PHP的官方手册吧(GFW没把PHP墙了真是谢谢您了呐)。虽然平时也常来查查函数,不过还真没怎么仔细翻阅过官方手册。趁着这个机会好好看看,总结一下官方的规范&一些小技巧&注意事项之类,提醒自己,也帮助他人。不定期更新
编码规范
普通变量使用 小写+[下划线]。例如:$unset_var
$result
函数使用 小写+[下划线]。例如:var_dump
print
命名空间使用 大写。例如:YII
THINKPHP
类名使用 大驼峰命名法。例如:SimpleClass
StringLib
属性(类里的变量)使用 小写+[下划线] $db
$error
方法(类里的函数)使用 小驼峰命名法。例如:displayVar
cookieSet
常量使用 大写+下划线。例如:BASEURL
COS_BUCKET
其实仔细翻阅你会发现即使是PHP官方的手册,也多少有些编码规范混乱的问题。所以关键还是看喜好。以上规范来自官方大部分例程,仅供参考,若有纰漏欢迎纠正 : )
命名技巧
通用前缀:is
表示是否,get
表示读,set
表示写
用好复数(s):取一个用户时getUser
,取多个用户时getUsers
避免冗余:同上例,使用getUsers
,而不是getUsersList
、getUsersData
或getUsersInfo
等非必要后缀
动词优先:例如getUser
、editBlog
关于这点,有些人也许会和我以前一样,更加偏爱名词在前,例如game_get
、game_set
、game_del
。这样的好处是当杂乱的函数大量出现时,可以很方便地一眼看清这个函数属于什么(game)、要做什么(get\set\del)。而不是看着一大堆动词(get\set\del)开头的函数,再去看这个函数属于什么。这种想法当然也有一定的道理,我以前也非常喜欢这样做。但在如今OOP的大环境下,既然前缀相同,何不将其写成一个类呢?例如game->set()
或game::set()
看起来都蛮清晰明了的,也利于日后扩展。为了可读性和可扩展性,牺牲一些微不足道的性能和内存也未尝不可。
取一个媳妇getGirl,取多个媳妇getGirls
getWife() { throw new Exception('找不到对象', 404); }
编码规范是极为重要的,关乎到代码可读性,后期维护