zoukankan      html  css  js  c++  java
  • PHP 编码规范

    PSR 规范官网
    PSR-2 编码风格规范
    PSR-1 基础编码规范
    CodeIgniter 框架的编码规范

    类和命名空间

    每个类都独立为一个文件,且命名空间至少有一个层次:顶级的组织名称(vendor name)。

    类的命名必须遵循大写开头的驼峰命名规范。

    <?php
    namespace VendorModel;
    
    class Foo
    {
        ...
    }

    类中的属性、方法、常量

    常量

    类的常量中,所有字母都 必须 大写,词间以下划线分隔。

    <?php
    namespace VendorModel;
    
    class Foo
    {
        const ENVIRONMENT = 'production';
        const MY_PI = 3.14;
    }

    属性

    PSR 规范中,对属性的编码规范没有强制要求,但一般使用小写字母开头的驼峰规则。

    <?php
    namespace VendorModel
    
    class Foo
    {
        private $price;
        private $userName;
    }

    方法

    跟属性名一样,使用小写字母开头的驼峰规则。

    <?php
    namespace VendorModel;
    
    class Foo
    {
        public function getPrice($id)
        {
            ...
        }
    }

    代码

    代码须使用4个空格符而不是「Tab 键」进行缩进。

    所有 关键字 必须 全部小写。常量 true 、false 和 null 也 必须 全部小写。

    每行字符数尽量保持在 80 个之内,最好不多于 120 个。

    每个 namespace 命名空间声明语句和 use 声明语句块后面,必须 插入一个空白行。

    类和方法的开始花括号({) 必须 写在函数声明后自成一行,结束花括号(})也 必须 写在函数主体后自成一行。

    类的属性和方法 必须 添加访问修饰符(private、protected 以及 public),abstract 以及 final 必须 声明在访问修饰符之前,而 static 必须 声明在访问修饰符之后。

    控制结构的关键字后 必须 要有一个空格符,而调用方法或函数时则 一定不可 有。

    控制结构的开始花括号({) 必须 写在声明的同一行,而结束花括号(}) 必须 写在主体后自成一行。

    参数列表 可以 分列成多行,这样,包括第一个参数在内的每个参数都 必须 单独成行。

    控制结构的开始左括号后和结束右括号前,都 一定不可 有空格符。

    <?php
    namespace VendorPackage;
    
    use FooInterface;
    use BarClass as Bar;
    use OtherVendorOtherPackageBazClass;
    
    class Foo extends Bar implements FooInterface
    {
        public function sampleFunction($a, $b = null)
        {
            if ($a === $b) {
                bar();
            } elseif ($a > $b) {
                $foo->bar($arg1);
            } else {
                BazClass::bar($arg2, $arg3);
            }
        }
    
        final public static function bar()
        {
            // 方法的内容
        }
    
    
        public function aVeryLongMethodName(
            ClassTypeHint $arg1,
            &$arg2,
            array $arg3 = []
        ) {
            // 方法的内容
        }
    }
  • 相关阅读:
    maven生命周期
    snsapi_base和snsapi_userinfo
    MySQL大小写问题
    高德地图JSApi
    方向
    看源码和写demo是一种比较容易提升的方式
    前后端分离,接口API,契约
    java文档操作
    String.getBytes(),源码之下,了无秘密
    myeclipse快捷键(转载)
  • 原文地址:https://www.cnblogs.com/kika/p/10851580.html
Copyright © 2011-2022 走看看