PSR-1:基礎編碼標準

一、概述php

  • 文件必須只容許使用<?php 或者 <?= 標籤。
  • 文件必須只容許使用UTF-8編碼,而且去除BOM頭。
  • 文件應當或者聲明符號(類,函數,常量等),或者引發反作用(例如:生成輸出,修改.ini設置等),可是不該當同時出現。
  • 命名空間和類必須緊跟「自動加載」標準:[PSR-0, PSR-4]。
  • 類名必須聲明相似於StudyCaps
  • 類中的常量必須所有由大寫字母和下劃線組成。
  • 方法名必須聲明相似於camelCase

二、文件html

  • 2.1 PHP標籤

        PHP代碼必須使用長標籤<?php ?>或者輸出-短標籤<?= ?>。不能使用其餘變異標籤。ide

  • 2.二、編碼

        PHP代碼必須僅容許使用去除BOM的UTF-8編碼。函數

  • 2.三、反作用(衝突)

        包括但不限於如下形式:生成輸出,直接使用 require 或者 include ,鏈接外部服務,修改ini配置,產生錯誤或者異常,修改全局或靜態變量,直接讀寫文件等等。ui

        如下是一個雙重定義的反作用實例:編碼

<?php
// side effect: 修改ini配置
ini_set('error_reporting', E_ALL);

// side effect: 加載一個文件
include "file.php";

// side effect: 直接輸出
echo "<html>\n";

// 定義
function foo()
{
    // 函數體
}

        如下是一個正確的定義方式:spa

<?php
// 定義
function foo()
{
    // function body
}

// 條件式定義
if (! function_exists('bar')) {
    function bar()
    {
        // function body
    }
}

三、命名空間和類名code

        命名空間和類都必須緊隨「自動加載」PSR:[PSR-0, PSR-4]htm

        這就意味着,每一個類都必須定義在一個獨立的文件中,而且命名空間至少一個層級:頂級名稱。接口

        類名必須以該種形式:StudyCaps 。

        PHP 5.3 以上的版本必須使用正式的命名空間。例如:

<?php
// PHP 5.3 and later:
namespace Vendor\Model;

class Foo
{
}

        PHP 5.2.* 或者以前的版本,應當使用僞命名空間慣例,類名須要以 Vendor_ 做爲前綴。例如:

<?php
// PHP 5.2.x and earlier:
class Vendor_Model_Foo
{
}

四、類中的常量、屬性和方法

        「類」是指全部的類、接口、traits。

  • 4.一、常量

        類中的常量必須使用大寫字母或下劃線來定義。例如:

<?php
namespace Vendor\Model;

class Foo
{
    const VERSION = '1.0';
    const DATE_APPROVED = '2012-06-01';
}
  • 4.二、屬性

        形如:$StudyCaps $camelCase $under_score

  • 4.三、方法

        方法名必須定義爲:camelCase()

相關文章
相關標籤/搜索