PHP Developer Coding Standards
View more presentations from Matthew Weier O’Phinney
本文编译自上面展示的幻灯片,作者为Zend Framework架构师、项目负责人。
编码规范的目的
- 效率
- 可维护性
- 协作
效率
如果没有编码规范,你将会:
- 经常格式化他人的代码
- 6个月前的代码和今天的代码具有不同的视觉结构
- 修改旧代码的时候,不时遇到语法错误,如条件语句缺少括号、列表数据遗漏逗号等等
可维护性
遵循编码规范,你的代码将具有可预见的布局,包括文件布局和代码布局。容易阅读的代码将会容易理解、维护和重构。
协作
团队成员遵循编码规范,任何程序员可以拾起并理解他人的代码,这将帮助他们进行维护和重构。还可以更加高效的进行开发,获得更高的客户满意度。
编码规范提供了什么?
- 文件布局的一致性
- 代码布局的一致性
使用公共规范
不要发明自己的规范,不管是为个人还是为公司。因为你并不特别,你的PHP代码也不是独一无二的。他人已经探讨过这个问题,你可以受益于集体的智慧。
为什么使用公共规范?
- 客观 – 选择将不是基于主观的喜好,而是实际的经验
- 招聘或外包的需求 – 容易判断求职者的经验或代码的质量
- 兼容性 – 遵循你用到的库的编码规范
已有的选择
- PEAR 编码规范
- Zend Framework 编码规范
- eZcomponents 编码规范
- PHPLib
PEAR编码规范
PEAR的规范是最广泛接受并使用的编码桂冠,这很大程度上受到PEAR用户数的影响,也是得益于该规范的整体质量与明确性。
PEAR命名约定
类名(Classes)
- 混合模式
- 首字母大写
- 使用下划线分隔逻辑包和代码的边界
- 示例:Spreadsheet_Excel_Writer, Services_Google_AdWords
文件(Files)
- 文件名和类名一一对应(一个类一个文件)
- .php 后缀
- 类名的下划线对应着目录结构
- 没有松散的PHP代码
- 示例:Spreadsheet_Excel_Writer ==> Spreadsheet/Excel/Writer.php
变量(Variables)
- 驼峰模式(CamelCase)
- 首字母小写
- 示例:var $firstName =
常量(Constants)
- 全部大写
- 下划线分隔单词
- 示例:const DB_HOST =
私有和受保护的属性(Private or protected properties)
- 首字母为下划线
- 示例:private $_username;
函数与方法(Functions & Methods)
- 驼峰模式
- 首字母小写
- 示例: function toString()
私有和受保护的方法(Private or protected methods)
- 首字母为下划线
- 示例:private function _doLogin()
缩进(Indentation)
- 使用空格(Spaces)而不是制表符(Tabs)(永恒的圣战)
- 每层缩进使用4个空格
- 目的是跨编辑器获得一致的视觉效果
行长度(Line Length)
- 建议75 – 85个字符
不使用Shell风格注释(#)
块格式(Block formatting)
- 函数和类的左括号在声明的下一行,同一层缩进
- 控制结构保证左括号和声明在同一行
- 所有的控制结构使用括号,没有例外
更多PEAR编码规范的信息
当前规范:http://pear.php.net/manual/en/standards.php
提名规范:http://pear.php.net/manual/en/pear2cs.php
总结
- 使用公共的编码规范
- 总是遵循编码规范
Gonna Sailing 😉 ==END==