LuisEdware 版 PHP 编程规范(遵循 PSR 1 PSR 2)

发布于 2024-11-25 05:04:24 字数 5108 浏览 5 评论 0

八荣八耻

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

代码风格

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

目录与文件

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

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

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

数据表和字段

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

常量和配置

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

示例代码

函数声明示例如下:

<?php
if( ! function_exists('array_random')){
    /**
     * 随机返回数组中的值
     *
     * @param  $array
     *
     * @return mixed
     */
    function array_random($array)
    {
        return $array[array_rand($array)];
    }
}

类文件声明示例如下:

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

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 = '');

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

    /**
     * 成员方法名称
     *
     * 成员方法描述
     *
     * @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...
        }

        switch ($paramThree) {
            case 'three':
                // 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...
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

上一篇:

下一篇:

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

一抹苦笑

暂无简介

文章
评论
24 人气
更多

推荐作者

泪是无色的血

文章 0 评论 0

yriii2

文章 0 评论 0

1649543945

文章 0 评论 0

g红火

文章 0 评论 0

嘿哥们儿

文章 0 评论 0

旧城烟雨

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文