PHP开发规范

发布时间:2018-04-18 编辑:钰歆博客 阅读(558)

    一、编码规范

    1、命名空间

        PHP 命名空间提供了一种将相关的类、函数和常量组合到一起的途径。有效的解决 多个模块之间的冲突问题,并且实现了更加高效的类库自动加载机制。

        示例:Org\Util\File类的定义为:

        namespace Org\Util;

        class File {

            ……

        }

     

        其所在的路径是 ThinkPHP/Library/Org/Util/File.class.php,因此,如果我们 实例化该类的话:

        $class = new \Org\Util\File();

        系统会自动加载 ThinkPHP/Library/Org/Util/File.class.php 文件。

     

    2、命名约定

    2.1 类命名

    Class应该具有一个描述性的名字,可能时应该避免使用缩写,命名时使用驼峰法。

        好的 Class 名字示例如下:  

        Log

        NetFinger

        HtmlUploadError

     

    2.2 函数的命名

    函数的命名使用小写字母和下划线的方式

        示例:get_client_ip

     

    2.3方法的命名

    方法的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 getUserName, _parseType,通常下划线开头的方法属于私有方法;

         示例: public function getUserName()

     

    2.4 属性的命名

    属性的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 tableName、_instance,通常下划线开头的属性属于私有属性;

     

    2.5 配置参数以大写字母和下划线命名

    'URL_CASE_INSENSITIVE' =>true,//不限制大小写

     

    2.6 数据表和字段命名规则

    数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user表  user_name字段是正确写法,类似 _username 这样的数据表字段可能会被过滤。


    3、模板文件命名约定

    3.1模板文件后缀

    文件名统一采用小写加下划线方式命名,默认后缀 .html

     

    3.2模板命名约定

    模板命名尽量跟方法名一致,有利于根据访问地址快速定位到模板文件

    示例:

    方法名:helpList()

    模板名:helplist.html  或者 help_list.html

     


    二、其他规范

    1、代码缩进

    使用4个空格作为缩进,而不使用tab缩进

     

    2、大括号{ }书写规则

    在程序中进行结构控制代码编写,如if、for、while、switch等结构,大括号传统的有两种书写习惯,分别如下:

        A.{直接跟在控制语句之后,不换行,如:

           for ($i=0;$i<$count;$i++) {

              echo "test";

           }

     

        B.{在控制语句下一行,如:

           for($i=0;$i<$count;$i++)

           {

              echo "test";

           }

    其中,a是PEAR建议的方式,但是从实际书写中来讲,这并不影响程序的规范和影响用phpdoc实现文档,所以可以根据个人习惯来采用上面的两种方式,但是要求在同一个程序中,只使用其中一种,以免造成阅读的不方便。

     

    3、小括号( )和函数

    A.不要把小括号和关键词紧贴在一起,要用一个空格间隔;如if ( $a<$b );

     

    B.小括号和函数名间没有空格;如$test = date("ymdhis");


     

    4、=符号书写

    在程序中=符号的书写遵循以下规则:

    A.=符号的两侧,均需留出一个空格;如$a = $b 、if ($a = = $b)等;

     

    B.在一个申明块,或者实现同样功能的一个块中,要求=号尽量上下对其,左边可以为了保持对齐使用多个空格,而右边要求空一个空格;如下例:

            $testa   = $aaa;

            $testaa  = $bbb;

            $testaaa = $ccc;

     

    5、if else swith for while等书写

    A.if条件判断中,如果用到常量判断条件,将常量放在等号或不等号的左边,例如:

    if ( 6 == $errorNum ),因为如果你在等式中漏了一个等号,语法检查器会为你报错,可以很快找到错误位置,这样的写法要多注意;

     

    B.switch结构中必须要有default块;

     

    C.for和wiile的循环使用中,要警惕continue、break的使用,避免产生类似goto的问题;

     

    6、true/false和0/1判断

    遵循以下规则:

    A.不能使用0/1代替true/false,在PHP中,这是不相等的;

     

    B.不要使用非零的表达式、变量或者方法直接进行true/false判断,而必须使用严格的完整true/false判断;

    不使用if ($a) 或者if (check()) 而使用if (FALSE != $a)或者 if (FALSE != check())

     

    7、函数和方法的注释范例

    注释是软件可读性的具体体现。程序注释量一般占程序编码量的20%,软件工程要求不少于20%。

        示例:

            /** 

            * @Purpose: 

            * 执行一次查询 

            * @Method Name: Query()

            * @Param: string $queryStr SQL查询字符串 

            * @Param: string $username 用户名

            * @Author: Michael Lee

            * @Return: mixed 查询返回值(结果集对象) 

            */ 

     

    三、逻辑思维与结构

    1、开发思路

    对于PHP项目开发,尽量采用OOP(面向对象编程)的思想开发,将独立的功能模块尽量写成函数调用,对应一整块业务逻辑,建议封装成类,既可以提高代码可读性,也可以提高代码重用性。

    重复的代码要做成公共的库。提高代码重用性。

     

    新需求的开发,先剖析能否单独模块,模块与模块之间采用接口的调用方式,每个模块有几个类文件,类文件各自的作用和关联。

     

    2、框架改动

    框架本身一般已经封包好了各个基本单元,如非必要,尽量不要直接修改这些单元。重写了这些单元,意味一些继承调用规范可能就跟着改,这对于整个项目开发人员不利,所有人需要重新去认知使用规范。


标签

还没有帐号?马上注册