使用自動加載遵照的規範php
namespacepackageClass_Name => /path/to/project/lib/vendor/namespace/package/Class/Name.php namespacepackage_nameClass_Name => /path/to/project/lib/vendor/namespace/package_name/Class/Name.php
基礎編碼規範git
反作用:
定義:僅僅經過包含文件,不直接聲明類、函數和常量等,而執行的邏輯操做github
產生輸出 直接require或include,鏈接外部服務,修改ini配置,觸發錯誤或異常,修改全局或者靜態變量,讀取或修改文件等等編程
編碼風格規範,減小因代碼風格不一樣而形成不便緩存
<?php namespace Vendor\Package; use FooInterface; use BarClass as Bar; use OtherVendor\OtherPackage\BazClass; 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() { // method body } }
<?php switch ($expr) { case 0: echo 'First case, with a break'; break; case 1: echo 'Second case, which falls through'; // no break case 2: case 3: case 4: echo 'Third case, return instead of break'; return; default: echo 'Default case'; break; }
<?php $closureWithArgs = function ($arg1, $arg2) { // body }; $closureWithArgsAndVars = function ($arg1, $arg2) use ($var1, $var2) { // body };
日誌類庫通用接口規範閉包
升級版的PSR-0自動加載規範函數
psr-0和psr4對比ui
定義 Foo\Bar => vendor\foo\bar\src 使用 use Foo\Bar\Tool\Request PSR-0實際目錄 vendor\foo\bar\src\Foo\Bar\Tool\Request.php PSR-4實際目錄 vendor\foo\bar\src\Tool\Request.php
緩存接口規範編碼
HTTP消息傳遞接口spa
請求方法 目標地址 HTTP協議 POST /path HTTP/1.1 目的主機 空一行消息內容 Host: example.com foo=bar&baz=bat
HTTP協議 狀態麼 描述文本 HTTP/1.1 200 OK 內容類型 空一行消息內容 Content-Type: text/plain foo=bar&baz=bat
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader-examples.md