PHP的编码规范、小技巧和注意事项等

PHP
1984
4
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,而不是getUsersListgetUsersDatagetUsersInfo等非必要后缀

动词优先:例如getUsereditBlog

关于这点,有些人也许会和我以前一样,更加偏爱名词在前,例如game_getgame_setgame_del。这样的好处是当杂乱的函数大量出现时,可以很方便地一眼看清这个函数属于什么(game)、要做什么(get\set\del)。而不是看着一大堆动词(get\set\del)开头的函数,再去看这个函数属于什么。这种想法当然也有一定的道理,我以前也非常喜欢这样做。但在如今OOP的大环境下,既然前缀相同,何不将其写成一个类呢?例如game->set()game::set()看起来都蛮清晰明了的,也利于日后扩展。为了可读性和可扩展性,牺牲一些微不足道的性能和内存也未尝不可。

小技巧

(下班了赶紧滚蛋去运动,待续...)
昵称
邮箱
网址
小妹惹人醉的头像 2015-10-06 14:51

shoujian_org.gif

Tokin的头像 2016-02-19 22:23

取一个媳妇getGirl,取多个媳妇getGirls

mokeyjay的头像 2016-02-20 13:32
mokeyjay 博主

getWife() { throw new Exception('找不到对象', 404); }

舞恸的头像 2015-10-01 16:32
舞恸

编码规范是极为重要的,关乎到代码可读性,后期维护