代码改变世界

CodeIgniter 开发规范

2013-06-09 13:49  youxin  阅读(315)  评论(0)    收藏  举报

参见:http://codeigniter.org.cn/user_guide/general/styleguide.html

下面列出部分重要的:

PHP 闭合标签

PHP闭合标签“?>”在PHP中对PHP的分析器是可选的。 但是,如果使用闭合标签,任何由开发者,用户,或者FTP应用程序插入闭合标签后面的空格都有可能会引起多余的输出、php错误、之后的输出无法显示、空白页。因此,所有的php文件应该省略这个php闭合标签,并插入一段注释来标明这是文件的底部并定位这个文件在这个应用的相对路径。这样有利于你确定这个文件已经结束而不是被删节的。

不当的:
<?php

echo "Here's my code!";

?>

适当的:
<?php

echo "Here's my code!";

/* End of file myfile.php */
/* Location: ./system/modules/mymodule/myfile.php */

类和方法(函数)的命名规则

类名的首字母应该大写。如果名称由多个词组成,词之间要用下划线分隔,不要使用骆驼命名法。类中所有其他方法的名称应该完全小写并且名称能明确指明这个函数的用途,最好用动词开头。尽量避免过长和冗余的名称

 不当的:

class superclass

class SuperClass

适当的: class Super_class

class Super_class {

 function __construct()
 {

 }
}

不当的和适当的方法名称的示例:

不当的:
function fileproperties()  // 方法名没有清晰的描述以及下划线分割单词
function fileProperties()  // 方法名没有清晰的描述以及使用了驼峰法命名
function getfileproperties()  // 还可以!但是忘记了下划线分割单词
function getFileProperties()  // 使用了驼峰法命名
function get_the_file_properties_from_the_file() // 方法名太冗长

适当的:
function get_file_properties() // 清晰的方法名描述,下划线分割单词,全部使用小写字母

变量命名

变量的命名规则与方法的命名规则十分相似。就是说,变量名应该只包含小写字母,用下划线分隔,并且能适当地指明变量的用途和内容。那些短的、无意义的变量名应该只作为迭代器用在for()循环里

不当的:
$j = 'foo';  // 单字符变量应该只作为for()的循环变量使用
$Str   // 使用了大写字母
$bufferedText  // 使用了驼峰命名,而且变量名应该更短,并有清晰的语法含义
$groupid  // 多个词组,应该使用下划线分割
$name_of_last_city_used // 太长了

适当的:
for ($j = 0; $j < 10; $j++)
$str
$buffer
$group_id
$last_city

TRUE, FALSE, 和 NULL

TRUEFALSE, 和 NULL 关键字应该总是完全大写的。

不当的:
if ($foo == true)
$bar = false;
function foo($bar = null)

恰当的:
if ($foo == TRUE)
$bar = FALSE;
function foo($bar = NULL)

比较返回值与类型映射

部分PHP函数执行失败时返回 FALSE, 但也可能有一个有效的返回值 "" 或 0, 它在松散比较中会被计算为FALSE. 在条件语句中使用这些返回值的时候,为了确保返回值是你所预期的类型而不是一个有着松散类型的值,请进行显式的比较。

在返回和检查你自己的变量时也要遵循这种严格的方法,必要时使用=== 和 !==

不当的:
// 如果 'foo' 位于此字符串的起始处,strpos将返回 0,
// 此处条件判断的结果为TRUE
if (strpos($str, 'foo') == FALSE)

恰当的:
if (strpos($str, 'foo') === FALSE)
不当的:
function build_string($str = "")
{
 if ($str == "") // uh-oh!  如果传递的参数是FALSE或者整数0那会怎么样?
 {

 }
}

恰当的:
function build_string($str = "")
{
 if ($str === "")
 {

 }
}