psr-0 和 psr-4這兩種自動加載規範的區別php
composer同時兼容這兩種規範, 可是這二者有什麼區別呢?json
好比說在composer.json中我這樣定義了:composer
{ "autoload": { "psr-4": { "church\\": "./src/" } } }
那我使用 use church\testClass
, 那就對應src/testClass.php
.code
使用use church\test\testClass
, 那就對應src/test/testClass.php
.class
上面是psr-4的對應規則. 那psr-0是什麼樣的呢?test
{ "autoload": { "psr-0": { "church\\": "./src/" } } }
我使用use church\testClass
, 那就對應src/church/testClass.php
.
使用use church\test\testClass
, 那就對應src/church/test/testClass.php
.psr
很明顯psr-0的目錄路徑更深. 所以推薦psr-4自動加載規範兼容