- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Xiuno_全栈工程师代码规范.doc.doc
Xiuno 全栈工程师编码规范
版本:v1.0 作者:axiuno@ 时间:2015/3/20
PHP 编码规范与原则
前言:本文档是一本面向全栈工程师的编码规范,如果你想成长为全栈式工程师,我相信这个规范是你成功的起点。总体说来倾向于linux 系统编程的风格,nginx memcached mysql lighttpd 都是采用的小写加下划线的命名风格。而 Windows Java .net 采用的则是匈牙利和骆驼,没有谁好谁坏,习惯就好。
1.1 缩进:
每个 TAB 键缩进的空白为 8 个空格字符宽度。
好处:尽量避免代码缩进,强迫在编写过程中简化逻辑。
1.2 空行与空格:
大段代码应该尽量按照功能块用一个空行分割。
函数和函数之间应该有一个空行。
空行内不能包含空格或制表符。
HTML 中不允许出现连续1个以上的空格。
在提示信息或者文档中中文、英文、数字混排的时候,英文和数组应该前后加空格。
1.3 括号:
if 紧跟小括号,小括号与大括号之间一个空格,开始大括号与 if 同行。
如果业务逻辑简单,尽量使用 AND 操作符,优先级比 低。
以下代码格式符合标准:
if($method == GET) {
$referer = user_http_referer();
$title = $lang[user_create];
include ./view/user_create.htm;
} else if($method == POST) {
$email = param(email);
$password = param(password);
empty($password) AND message(1, “请输入密码!”);
}
1.3 单引号、双引号
在PHP 当中,尽量使用单引号,解析速度比双引号快。
如果里面包含变量,为了代码的美观,可以使用双引号。
在双引号中的数组 key 不应该加单引号
在单引号中仅仅转义 \,其他字符都不转义,如 \t\r\n $
以下为正确用例:
$sitename = ‘阿里粑粑中国’;
$info = “站点名称:$sitename”;
$info = “用户名:$user[name]”;
1.4 变量命名:
变量使用小写加下划线
不要使用骆驼和匈牙利,除非 js 对 DOM prototype 进行扩展(保持与原生一致)。
常量:大写+下划线
尽量的准确、简短,尽量不要缩写,采用非常见缩写方式需通报团队。
从数据库中取出的一行结果为:$user, 结果集名称:$userlist
1.5 函数名:
同变量名,相同类的函数使用统一前缀,如:
mysql_connect()
mysql_query()
mysql_fetch_assoc()
1.6 类、继承、接口、构造、析构、魔术方法:
尽量不要使用 PHP 高级特性,但是需要懂(为了阅读他人代码)。
高级特性消耗自己和同事更多的学习成本,往往与带来的好处不成正比。
不是刚需,不要用。
1.7 正则表达式:
尽量使用单引号,分隔符为 #
禁止使用 e 修饰符,如果刚需,请使用 preg_replace_callback() 代替
以下正则格式符合标准:
preg_match(‘#\w+@\w+\.\w+#is’, $email);
尽量使用 \w \s \S 内置的表示方法,不要啰嗦的去写[0-9a-zA-Z_]。
为什么不用 / 作为分隔符?
因为 WEB 开发过程中,字符串中出现 / 的概率太高。
1.8 include include_once require require_once:
尽量使用 include,速度快,并且不会中断业务逻辑。
require 在文件不存在或不可读的时候,会暴力终止业务逻辑。
路径采用相对路径,一般相对于网站根目录 ./
切换路径的时候使用:
?php
chdir(getcwd()./../);
include ./common.inc.php;
? 1.9 error_reporting:
在本地开发环境下使用,使用 E_ALL,消灭所有 NOTICE。
线上环境使用 0,并且配置 php.ini error_log 记录到服务器日志,避免错误信息外泄。
1.10 模板:
不要用 Smarty 等任何类型的模板“引擎”,他们不时真正意义上的引擎,只是一堆正则替换而已。而且效率低下,学习的时间成本高,浪费脑细胞。
直接使用PHP 的 原生标签,比如:
?php include ./view/header.inc.htm; ?
div id=body
Hi, boy! welcome to ?=$sitename?! Here, no smarty
文档评论(0)