PHP PSR-2 Coding Style Guide

2019-01-11  本文已影响0人  观星汉

PHP 代码风格指南, 遵守 PSR-2 标准编写的代码会显得非常优雅. 别人在阅读你的代码的时候会赏心悦目.

1: 规则总览

  1. 代码规则遵守 PSR-1.
  2. 代码缩进使用4个空格. 不是使用 tab缩进.
  3. 一行代码不要超过 80 个字符, 超过的需要设置换行.
  4. namespace 声明语句后需要保留一个空行. 使用 use 声明代码块后后面也需要留一个空行.
  5. 定义 class 后的 花括号 { 和结束 class 声明的 } 都单独使用一行. 不要把 {类名 同一行.
  6. 定义 method 的时候, 开始和结束的花括号 { } 也都独占一行. 和规则5一样.
  7. abstract, final 关键字需要放在可见性声明前面, static关键字放在可见性声明后面.
  8. 控制结构中关键字后需要留一个空格, 函数调用是不能留空格.
  9. 控制结构代码块的开始的花括号{需要和控制块开始在同一行. 结束的花括号}需要在单独一行.
  10. 左括号(控制开始)后面不要留空格, 右括号(控制结束)前不要留空格.

2: 规则详解

2.1: 关于PHP文件

2.2: 关于每行代码

2.3: 关于PHP的关键字

2.4: 关于 NamespaceUse 声明.
<?php
namespace Vendor\Package;

use FooClass;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;

// ... additional PHP code ...

2.5: 关于类 Classes
<?php
namespace Vendor\Package;

use FooClass;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;

class ClassName extends ParentClass implements \ArrayAccess, \Countable
{
    // constants, properties, methods
}
<?php
namespace Vendor\Package;

use FooClass;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;

class ClassName extends ParentClass implements 
    \ArrayAccess, 
    \Countable,
    \Serializable
{
    // constants, properties, methods
}

2.6: 关于类属性: Properties
<?php
namespace Vendor\Package;

class ClassName
{
    public $foo = null;
}

2.7: 类方法: Methods
<?php
namespace Vendor\Package;

class ClassName
{
    public function fooBarBaz($arg1, &$arg2, $arg3 = [])
    {
        // method body
    }
}
<?php
namespace Vendor\Package;

class ClassName
{
    public function aVeryLongMethodName(
        ClassTypeHint $arg1,
        &$arg2,
        array $arg3 = []
    ) {
        // method body
    }
}

2.8: abstract, final, static
<?php
namespace Vendor\Package;

abstract class ClassName
{
    protected static $foo;

    abstract protected function zim();

    final public static function bar()
    {
        // method body
    }
}

//to be continue.

上一篇 下一篇

猜你喜欢

热点阅读