2017-08-02 66 views
0

我試過在Symfony3中自動生成一個包,使用官方網站上的說明:https://symfony.com/doc/current/bundles.html,但失敗了。如何在Symfony3中自動生成一個包?

我在我的項目中創建了一個目錄\src\TestBundle,其中有一個文件TestBundle.php。我將Bundle中的TestBundle類擴展並在類聲明之前添加了use Symfony\Component\HttpKernel\Bundle\Bundle;行。

我將新的軟件包名稱添加到AppKernel.php的軟件包列表中。

最後,當我執行$ php bin/console generate:bundle --namespace=TestBundle,我得到這個錯誤:PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "TestBundle" from namespace "TestBundle".

任何想法,爲什麼出現這種情況?

回答

1

如果啓動該命令:

php bin/console generate:bundle --namespace=TestBundle 

的Symfony創建捆綁你,你並不需要創建文件,並將其添加到AppKernel文件。

嘗試刪除您關於TestBundle的所有文件和引用,並在啓動後只使用命令,Symfony將爲您創建並註冊Bundle。

相反,我想要手動創建thos文件,您需要創建目錄\src\TestBundle並在其文件TestBundle.php中。 當你需要註冊到你的AppKernel。 後,你需要告訴作曲家來加載包,如果是尚未使用autoload此配置中composer.json

"autoload": { 
    "psr-4": { 
     "": "src/" 
    }, 
    "classmap": [ 
     "app/AppKernel.php", 
     "app/AppCache.php" 
    ] 
}, 

最後啓動您的控制檯內部的命令:

composer dump-autoload