標籤:
諸王混戰
關於開發標準這塊,可以說一直都是風格迥異,各家都有各家的玩法,民間更是個人玩個人的。目前我們國內比較出名的幾個架構(Yii,Laravel) 都已經支援Composer並且加入了PHP-FIG(php架構程式組)。
其中Composer的自動載入就支援PHP-FIG指定的PSR-0 和 PSR-4 規範來實現自動載入機制,並且Composer推薦使用PSR-4
PHP-FIG
這是一個自願非正式的機構,但是就目前對我們的影響來看,可能都已經預設為一個公信組織了,的的確確制定了不少非常好的規範
目前從官網看,已經投票( http://www.php-fig.org/psr/ )通過的有7個大的規範了
Composer自動載入
在Composer 依賴管理工具實現的autoload 推薦第三方依賴庫或者項目使用 PSR-4,但是Composer本身 也是向下相容PSR-0的
博文(Composer : php依賴管理工具)中示範代碼中,安裝了兩個庫
這兩個庫,phpexcel 實現的是PSR-0規範,monolog實現的確實PSR-4規範,這是從各自庫目錄下面的composer.json檔案得知的
PSR-0 與 PSR-4 區別
其實PSR-0 和 PSR-4 在內容上差異不大,這裡也就不說定義了
PSR-0中最後一個\之後的類名,如有底線會轉化成路徑分隔字元 如Name_Space_Test會轉換成Name\Space\Test.php,這是出於對PHP5.3以前版本相容的考慮
PSR-0有更深的目錄結構,比如定義了NS為 Foo\Bar=>vendor\foo\bar\src,use Foo\Bar\Tool\Request調用NS。
如果以PSR-0方式載入,實際的目錄為vendor\foo\bar\src\Foo\Bar\Tool\Request.php
如果以PSR-4方式載入,實際目錄為vendor\foo\bar\src\Tool\Request.php
參考文檔
php-fig中文版: https://github.com/PizzaLiu/PHP-FIG
php-fig官網:http://www.php-fig.org/
原文地址:PSR : php編碼規範
標籤:psr composer autoload php-fig yii laravel
PSR : php編碼規範