PHP 编程规范个人实践


八荣八耻

  • 以「动手实践」为荣, 以「只看不练」为耻;
  • 以「打印日志」为荣, 以「单步跟踪」为耻;
  • 以「空格缩进」为荣, 以「制表缩进」为耻;
  • 以「单元测试」为荣, 以「人工测试」为耻;
  • 以「模块复用」为荣, 以「复制粘贴」为耻;
  • 以「多态应用」为荣, 以「分支判断」为耻;
  • 以「优雅高效」为荣, 以「冗余拖沓」为耻;
  • 以「总结分享」为荣, 以「跪求其解」为耻。

代码风格

编程开发时,需要遵循 PSR 规范如下:

  • PSR 2(编码风格规范):https://laravel-china.org/topics/2079
  • PSR 4(自动加载规范):https://laravel-china.org/topics/2081

目录与文件

  • 目录使用小写加下划线;
  • 类库、函数文件统一以 .php 为后缀;
  • 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;
  • 类文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名;
  • 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写);

函数、成员属性、成员方法

  • 函数的命名使用小写字母和下划线的方式
  • 成员属性的命名使用首字母小写的驼峰法
  • 成员方法的命名使用首字母小写的驼峰法

数据表和字段

  • 数据表采用小写加下划线方式命名
  • 字段采用首字母小写的驼峰法命名

常量和配置

  • 常量以大写字母和下划线命名
  • 配置以小写字母和下划线命名

示例代码

函数声明示例如下:

nameTest = new TestClass();
        // 链式操作
        $this->nameTest->functionOne()->functionTwo()->functionThree();
        // 一段代码逻辑执行完毕 换行
        // code...
    }

    /**
     * 成员方法名称
     *
     * 成员方法描述
     *
     * @param  string $value 形参名称/描述
     *
     * @return 返回值类型 返回值描述
     */
    public static function staticFunction($value = '')// static位于修饰符之后
    {
        // code...
    }

    /**
     * 成员方法名称
     *
     * 成员方法描述
     *
     * @param  string $value 形参名称/描述
     *
     * @return 返回值类型 返回值描述
     * 返回值类型:string,array,object,mixed(多种,不确定的),void(无返回值)
     */
    public function testFunction($value = '')// 成员方法必须小写开头驼峰
    {
        // code...
    }

    /**
     * 成员方法名称
     *
     * 成员方法描述
     *
     * @param  string $value 形参名称/描述
     *
     * @return 返回值类型 返回值描述
     */
    abstract public function abstractFunction($value = '');
    // abstract 位于修饰符之前

    /**
     * 成员方法名称.
     * 成员方法描述
     *
     * @param  string $value 形参名称/描述
     *
     * @return 返回值类型 返回值描述
     */
    final public function finalFunction($value = '')// final 位于修饰符之前
    {
        // code...
    }

    /**
     * 成员方法名称
     *
     * 成员方法描述
     *
     * @param  string $paramOne   形参名称/描述
     * @param  string $paramTwo   形参名称/描述
     * @param  string $paramThree 形参名称/描述
     * @param  string $paramFour  形参名称/描述
     * @param  string $paramFive  形参名称/描述
     * @param  string $paramSix   形参名称/描述
     *
     * @return 返回值类型 返回值描述
     */
    public function tooLangFunction(
        $paramOne = '', // 变量命名可小写开头驼峰或者下划线命名
        $paramTwo = '',
        $paramThree = '',
        $paramFour = '',
        $paramFive = '',
        $paramSix = ''
    )// 参数过多换行
    {
        if ($paramOne === $paramTwo) {// 控制结构=>后加空格,同{一行,(右边和)左边不加空格
            // code...
        }

        if ($paramTwo === $paramThree) {

        } elseif ($paramFour === $paramFive) {

        } else {

        }

        switch ($paramThree) {
            case 'three':
                // code...
                break;
            case 'one':
            case 'two':
            case 'four':
            case 'five':
                // code...
                break;
            default:
                // code...
                break;
        }

        do {
            // code...
        } while ($paramFour <= 10);

        while ($paramFive <= 10) {
            // code...
        }

        for ($i = 0; $i < $paramSix; $i++) {
            // code...
        }
    }

    /**
     * 成员方法名称
     *
     * 成员方法描述
     *
     * @param  string $value 形参名称/描述
     *
     * @return 返回值类型 返回值描述
     */
    private function _privateTestFunction($value = '')// 私有成员方法【个人建议】下划线小写开头驼峰
    {
        // code...
    }
}

你可能感兴趣的:(PHP 编程规范个人实践)