PHP FIG是PHP Framework Interop Group的簡稱,是一個組織,其目的是制定PHP編碼標準,以使得各大PHP框架之間的互通性更好,在這篇文章中我們將會闡述PHP FIG的作用,以及它對PHP框架的影響。
PHP FIG成立于2009年,由幾個知名PHP框架的開發者共同組織,它的主要目的是為了制定一些PHP編碼規范,以便于不同的PHP框架之間可以更加方便的協同工作。為了達到這個目的,PHP FIG成立初期制定了一些比較重要的(也是目前比較流行的)標準,比如PSR-0,PSR-1,PSR-2等。
PSR-0規范主要要求了一個PHP類庫的自動加載規則,使得一個PHP類庫可以被自動加載到某一個特定的位置。舉個例子,如果我們有一個以“Zend_Log”為命名空間的類庫,它的根目錄應該是“./path/to/project/lib/Zend/Log/”。這樣的命名方式符合PSR-0規范,可以被各種自動加載處理器所處理。
<?php // ./path/to/project/lib/Zend/Log/Writer/Db.php namespace Zend\Log\Writer; use Zend\Db as Db; class Db { ... }
PSR-1規范主要規定了 PHP 代碼的基本清晰度、易讀性、易維護性和易共享性等方面。PSR-1 規范定義了 PHP 代碼應該是怎么撰寫和排版的,遵循了該規范的 PHP 代碼非常易讀、易用和容易維護。
<?php /** * Rediculously long example class simply to illustrate the point. */ class ClassName { public function __construct(Foo $foo, Bar $bar = null, array $config = array()) { // if you do stuff in the constructor, like implement DI or other important things, then you should probably place it at the top of the method body $this->_foo = $foo; if (null !== $bar) { // always use strict comparison $this->_bar = $bar; } $this->_config = $config; // nothing inherently wrong with this line of code, but it's less readable } }
PSR-2規范主要是定義了一些PHP的代碼風格。事實上,一個良好的PHP代碼風格,可以讓PHP代碼更加易讀、易用,也更容易被他人所理解。
<?php while ($a == $b) { echo 'Hello World'; }PHP FIG 的出現,對于 PHP 各種開源框架的互通性和協作性起到了極為積極的推動作用。舉個例子,比如Symfony,Laravel,Zend Framework等主流框架都已經經過了PSR-0,1,2規范的支持。這樣,我們開發者就可以在不同的框架之間切換而不需擔心各種奇怪的兼容性問題了。
結論:PHP FIG的作用就是為PHP定義一些標準,使得PHP的不同框架之間可以進行互操作性和互通性,PHP FIG的過程使得PHP社區能夠向著協同的方向前進。如果不同的PHP框架之間都遵循這些標準,那么這個生態系統會更加健康成熟,PHP FIG也能為整個PHP社區做出更多的貢獻。