PHP 程式撰寫風格

PHP Code Sniffer

PSR撰寫規範

PSR-1 的重點摘錄

1. 檔案 Files


  • Use 4 spaces for indenting, not tabs.

    4個空白,不可以使用 tabs

  • Files SHOULD either declare symbols (classes, functions, constants, etc.) or cause side-effects (e.g. generate output, change .ini settings, etc.) but SHOULD NOT do both.

    檔案內容必須是宣告檔(classes, functions, constants, etc.)或是執行檔(例如: 產出執行結果, 改變 .ini),不可混著使用。

    下面的檔案個不好的例子,在執行擋中宣告 function:

<?php
// side effect: change ini settings
ini_set('error_reporting', E_ALL);

// side effect: loads a file
include "file.php";

// side effect: generates output
echo "<html>\n";

// declaration
function foo()
{
    // function body
}

2. 命名空間 Namespace and Class Names


  • 必須遵守 "autoloading" PSR4

3. 宣告Class names


  • Class 必須宣告為 StudlyCaps. 第一個字母一定要大寫。
  • Class 必須使用正式的Namespace
  • Constants 一定要大寫和底線分隔詞 UPPER_CASE
  • Properties 並沒定義用哪種形式,但個人建議使用$camelCase
  • Methods 第一個字母一定要小寫 camelCase()
<?php
// PHP 5.3 and later:
namespace Vendor\Model;

class Foo
{
    const VERSION = '1.0';
    const DATE_APPROVED = '2012-06-01';

    // public property. no runtime type-checking.
    public $nameAsProperty;

    // private property with type-checking.
    private $name;
    public function getName(): string {
        return $this->name;
    }
    public function setName(string $newName) {
        $this->name = $newName;
    }

    // public metods
    public function fetchData(): array {
        return [1, 2, 3]; 
    }
}

results matching ""

    No results matching ""