2014-08-29 84 views
0

當我I composer dump-autoload時,我的PSR4結構未註冊。這是我作曲,入口爲src/Booksmart:Laravel作曲家轉儲自動加載不應用新的PSR-4結構

"autoload": { 
    "classmap": [ 
     "app/commands", 
     "app/controllers", 
     "app/models", 
     "app/database/migrations", 
     "app/database/seeds", 
     "app/tests/TestCase.php", 
     "app/controllers/Api", 
    ] 
}, 
"psr-4": { 
    "Booksmart\\": "src/Booksmart" 
}, 

,這是我的目錄結構:

src/ 
    Booksmart/ 
     Advance/ 
      Advance.php 

的Advance.php看起來是這樣的:

<?php 
namespace Booksmart\Advance 

class Advance 
{ 

} 

vendor/composer/autoload_psr4.php沒有按不會顯示我的Booksmart名稱空間的新條目,但絕對不會加載Advance.php類。這似乎很容易搞砸,我錯過了什麼?

+1

psr-4應該在自動加載。 – 2014-08-29 01:07:13

+0

詳情!非常感謝。 – 2014-08-29 14:37:34

回答

2

PSR-4必須是內自動加載:

"autoload": { 
    "classmap": [ 
     "app/commands", 
     "app/controllers", 
     "app/models", 
     "app/database/migrations", 
     "app/database/seeds", 
     "app/tests/TestCase.php", 
     "app/controllers/Api", 
    ], 

    "psr-4": { 
     "Booksmart\\": "src/Booksmart" 
    }, 

}, 
+0

我愛你。非常。 – 2014-08-29 14:37:12

+0

好吧,我也這樣做了。但是,當我使用dump-autoload「沒有-o」時,它不包含我的PSR-4。但優化呢。你有什麼建議嗎? – 2015-10-30 22:43:24

0

我的事情你不需要撰寫。在我的例子中,我在「Advance」類中支付這樣的命名空間。例如namespace App\src\Bookmart\Advance。然後在依賴類use App\src\Bookmart\Advance;