php遵循的一些標準

psr-0

每一個完整的命名空間都需要有以下結構\vendor\namespace\classname
每個命名空間需要有一個頂級的命名空間  \vendor
每個命名空間的分隔符轉換爲DIRECTORY_SEPARATOR ,當加載文件的時候
每個_字符 在類中都會轉化爲DIRECTORY_SEPARATOR
完整的命令空間和類都以.php結尾當加載文件的時候

    \Doctrine\Common\IsolatedClassLoader => /path/to/project/lib/vendor/Doctrine/Common/IsolatedClassLoader.php
    \Symfony\Core\Request => /path/to/project/lib/vendor/Symfony/Core/Request.php
    \Zend\Acl => /path/to/project/lib/vendor/Zend/Acl.php
    \Zend\Mail\Message => /path/to/project/lib/vendor/Zend/Mail/Message.php


function autoload($className)
{
    $className = ltrim($className, '\\');
    $fileName  = '';
    $namespace = '';
    if ($lastNsPos = strrpos($className, '\\')) {
        $namespace = substr($className, 0, $lastNsPos);
        $className = substr($className, $lastNsPos + 1);
        $fileName  = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
    }
    $fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';


    require $fileName;
}
spl_autoload_register('autoload');



2.psr-1的規範

  • PHP代碼文件 必須<?php<?= 標籤開始;

  • PHP代碼文件 必須不帶 BOM 的 UTF-8 編碼;

  • PHP代碼中 應該 只定義類、函數、常量等聲明,或其他會產生 副作用 的操作(如:生成文件輸出以及修改 .ini 配置文件等),二者只能選其一;

  • 命名空間以及類 必須 符合 PSR 的自動加載規範:PSR-4 中的一個;

  • 類的命名 必須 遵循 StudlyCaps 大寫開頭的駝峯命名規範;

  • 類中的常量所有字母都 必須 大寫,單詞間用下劃線分隔;

  • 方法名稱 必須 符合 camelCase 式的小寫開頭駝峯命名規範。

類的屬性命名 可以 遵循:

  • 大寫開頭的駝峯式 ($StudlyCaps)
  • 小寫開頭的駝峯式 ($camelCase)
  • 下劃線分隔式 ($under_score
方法名稱 必須 符合 camelCase() 式的小寫開頭駝峯命名規範。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章