php-ci 开发规范

虽然CI提供的官方文档里面已经有比较详细的开发规范了,但是自己觉得还是有必要将它写到博客里面重新记录下来。

1.文件格式:使用 Unicode(UTF-8)编码保存,不适用字节序标记,用Unix格式的行结束符;

2.php闭合标签:省略文件的php闭合标签,插入注释标明文件结尾和文件的相对路径;

3.类和方法的命名规则:类名首字母大写,使用下划线分隔多词,方法名应小写,最好以动词开头并指明用途;

4.变量命名:只包含小写字母,使用下划线分隔多词并指明变量用途;

5.注释:在关键代码处添加详细注释,文档块式的注释应位于类和方法的声明前,大块注释与代码间留一个空行;

6.常量:全部大写,使用下划线分隔多词并指明用途;

7.TRUE、FALSE、NULL:关键字应该总是完全大写;

8.逻辑操作符:&&优先于AND,使用 ! 时要在其前后都加一个空格;

9.比较返回值与类型映射:将返回值进行显式的比较,必要时使用 === 和 ! ==;

10.调试代码:在已提交的附加组件所在的地方不能有调试代码,它们被注释的情况除外;

11.文件中的空格:在php开始标记之前和结束标记之后都不能有空格;

12.兼容性:除非附加组件文档中有特别说明,否则所有代码必须与PHP5.1以上版本兼容,不要使用依赖于非默认安装的库的函数;

13.使用常见词语来命名类和文件:当你的类或文件名是一个常见词语时,或者是很可能与另一个PHP脚本同名时,使用一个唯一的前缀来避免冲突。你必须始终明白这一点:你的最终用户可能会运行其它第三方的附加组件或者PHP脚本。选择一个能够唯一标识开发者或公司的前缀;

14.数据库表名:你的附加组件所用到的任何表都必须使用 'exp_' 这个前缀,然后是一个能够唯一标识开发者或公司的前缀,最后才是一个简短的描述性的表名。你不需要担心用户安装时所使用的数据库前缀,因为CodeIgniter的数据库类将根据实际情况自动地对 'exp_' 进行转换;

15.一个文件一个类:对于你的附加组件所使用的类应当遵循一个文件一个类的原则,除非这些类是紧密相关的。CodeIgniter的文件中包含多个类的一个例子是数据库类文件,其中包含了DB类和DB_Cache类,还有Magpie插件,其中包含了Magpie和Snoopy类;

16.空格:在代码中使用tab代替空格。这虽然看起来像是小事,但是使用tab代替空格有利于那些阅读你的代码的开发者在他们各自所使用的应用程序中自定义缩进方式。此外还有一个好处是,使用这种方式保存的文件稍微紧凑一点;

17.换行:文件必须使用Unix换行符保存。这对于那些在Windows下的开发者来说更为重要,但无论如何,确保你的文本编辑器已经设置为使用Unix换行符来保存文件;

18.代码缩进:使用 Allman 风格缩进。除了类声明以外,括号总是独占一行,且缩进与“属于”它的控制语句同级;

19.方括号及圆括号内的空格符:通常情况下,不要在方括号"[]"和圆括号"()"内增加任何空格符。唯一的例外就是为了提高可读性和区别开它们与函数,在接受参数的PHP语法控制结构所使用的括号里,需要增加空格符(declare, do-while, elseif, for, foreach, if, switch, while);

20.本地化文本:所有在控制面板输出的文本都应该使用 lang 文件里的语言变量来允许本地化;

21.私有方法和变量:代码里像一些只是为了被类里其他公开函数所调用而封装的工具/辅助类方法,应该以一个下划线做前缀来命名;

22.短标记:一直使用 PHP 完整标记,以免服务器不支持短标记,也就是未打开 short_open_tag 。(IT不倒翁注释:这条已经不成立,因为新版本的 CI 已经解决了服务器不支持短标记的问题,不过还是建议使用完整标记);

23.每行一条语句:切记不要在一行写多条语句;

24.字符串:一直使用单引号除非你需要解析变量,如果需要解析变量请使用大括号, to prevent greedy token parsing. 如果字符串包含单引号的话你可以使用双引号,这样就不用转义了;

25.SQL查询:MySQL 的关键字一直大写: SELECT, INSERT, UPDATE, WHERE, AS, JOIN, ON, IN等等,考虑到易读性,请将从句%;

26.PHP Errors:Code must run error free and not rely on warnings and notices to be hidden to meet this requirement. For instance, never access a variable that you did not set yourself (such as $_POST array keys) without first checking to see that it isset().

Make sure that while developing your add-on, error reporting is enabled for ALL users, and that display_errors is enabled in the PHP environment. You can check this setting with:

if (ini_get('display_errors') == 1) { exit "Enabled"; }

On some servers where display_errors is disabled, and you do not have the ability to change this in the php.ini, you can often enable it with:

ini_set('display_errors', 1);

NOTE: Setting the display_errors setting with ini_set() at runtime is not identical to having it enabled in the PHP environment. Namely, it will not have any effect if the script has fatal errors

posted @ 2012-12-27 10:14  @不系之舟  阅读(248)  评论(0编辑  收藏  举报