美文网首页
PHP 编程规范个人实践

PHP 编程规范个人实践

作者: 七月十五九月初七 | 来源:发表于2017-02-16 18:08 被阅读211次

八荣八耻

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

代码风格

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

目录与文件

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

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

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

数据表和字段

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

常量和配置

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

示例代码

函数声明示例如下:

<?php
/**
 * 符合 RSR-1,RSR-2 的编程实例
 *
 * @Date      2017/02/17 18:00
 * @Author    七月十五九月初七
 * @License   广东七月十五九月初七科技有限公司
 * @Copyright Copyright (c) 2017 PSR-1.PSR-2 Ltd
 */
namespace PSR; // 顶部命名空间

use Yii; // 空一行 use 引入类

/**
 * 类描述
 * 类名必须大写开头驼峰.
 */
abstract class ExampleClass // {}必须换行
{
    /**
     * 常量描述
     *
     * @var string
     */
    const THIS_IS_A_CONST = ''; // 常量全部大写下划线分割

    /**
     * 属性描述
     *
     * @var string
     */
    public $nameTest = ''; // 属性名称建议开头小写驼峰,成员属性必须添加public(不能省略), private, protected修饰符

    /**
     * 属性描述
     *
     * @var string
     */
    private $_privateNameTest = ''; // 类私有成员属性,【个人建议】下划线小写开头驼峰

    /**
     * 构造函数
     *
     * 构造函数描述
     *
     * @param  string $value 形参名称/描述
     */
    public function __construct($value = '')// 成员方法必须添加public(不能省略), private, protected修饰符
    {// {}必须换行
        $this->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 编程规范个人实践

    八荣八耻 以「 动手实践 」为荣, 以「 只看不练 」为耻; 以「 打印日志 」为荣, 以「 单步跟踪 」为耻; ...

  • jQuery编程的最佳实践

    jQuery编程的最佳实践 @(jquery)[jquery|最佳实践|编程规范] [TOC] 加载jQuery ...

  • PHP 编程规范

    关于PHP编程的规范 自己总结出的一些规范,方便大家参考 ,主要从代码版本管理规范以及代码自身的规范。 代码版本管...

  • 04 | 代码规范:实践开发 Flutter 编程代码规范工具

    在实践编程之前,我们先来掌握代码规范,毕竟优秀的编程代码从规范开始。 命名规范 命名规范中包括了文件以及文件夹的命...

  • PHP的编程规范

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

  • PHP编程时的规范化命名

    分类: PHP编程时的规范化命名 要想成为一名“合格”的程序员,就必须要有良好的编程习惯和规范,这样做的好处有很多...

  • [LNMP]php编程建议规范

    人都有自由的天性,所以规范是不受欢迎的,但当你被旧代码或别人的代码绕的云里雾里的时候,就会想要是有规范多好。所以规...

  • 开发学习电子书

    Android开发 Android 4.0网络编程详解Android内核剖析Android和PHP开发最佳实践An...

  • PHP学习笔记第二篇 编程思维与规范

    了解完php编程的基础知识,接下来应该学习进阶知识点的,但是我认为一些核心的编程思维和编程规范是非常重要的,所以放...

  • PHP基于PSR代码规范 --- 2019-08-30

    PHP 代码规范 FIG 制定的 PHP 规范,简称 PSR,是 PHP 开发的事实标准。FIG 是 Framew...

网友评论

      本文标题:PHP 编程规范个人实践

      本文链接:https://www.haomeiwen.com/subject/uhuhwttx.html