2013-06-27 47 views
0

我已經使用控制檯創建了一個樣本包。玩了一段時間。現在,我將其移至供應商文件夾。如何使Symfony2自動加載我在供應商文件夾中創建的捆綁包的routing.yml文件?

廠商在文件夾中的包的文件夾結構

VendorName\VendorName\Bundles\SampleBundle 

我已經添加了命名空間到composer/autoload_namespaces.phpAppKernel.php我成功註冊了捆綁。在SampleBundle/Resources/config文件夾中,有一個routing.yml,它具有以前定義的路由信息​​。

當捆綁包位於src文件夾內時,路由工作正常。我在app/config/routing.yml有如下定義

biberltd_currency: 
    resource: "@VendorNameSampleBundle/Resources/config/routing.yml" 
    prefix: /

上述定義,我得到了以下錯誤:

Cannot import resource "@VendorNameSampleBundle/Resources/config/routing.yml from "D:/localdev/www/symfony/app/config\routing.yml". Make sure the "@VendorNameSampleBundle/Resources/config/routing.yml" bundle is correctly registered and loaded in the application kernel class.

當我從app/config/routing.yml刪除路由定義,錯誤消失但路線不工作。

看到這個,我檢查了很多樣本​​包,但是我找不到他們如何處理捆綁控制器對於位於供應商文件夾中的捆綁包的路由。

任何人都可以幫我解決這個問題嗎?

+0

爲什麼要將捆綁包轉移到供應商? –

+0

現在我正在嘗試學習symfony。但我想到的是在供應商文件夾中創建所有非項目特定的捆綁包。我有我自己創建的庫。例如,我在不同的項目中使用的貨幣轉換器,圖像處理類等等,我可以在許多不同的項目中使用它們。我一直在閱讀symfony文檔,他們建議供應商文件夾應該有通用的文​​件,而src文件夾應該有特定於項目的文件。 –

+0

有點不對。不要在供應商下編碼。一切都在src下。此外你的「通用」捆綁。如果你想解耦它,把它移到symfony之外,添加一個composer.json並在你的項目composer.json中引用它。 –

回答

0

你應該做一個路線加載器中所描述的documentation

此外,通過帕子如指出,配置bundle's composer.json

最後加在你的根composer.json:

"repositories": [ 
{ 
    "type":"git", 
    "url":"/home/dev/bundle.git" 
} 
], 
"require":{ 
    "my/bundle":"dev-master" 
} 
+0

感謝您的分享。我已經嘗試過文檔。惟有我堅持這一部分: #應用程序/配置/ routing.yml中 AcmeDemoBundle_Extra: 資源。 類型:額外 該點出現錯誤。它說該資源無法加載。你有什麼想法,爲什麼這可能是一個問題? –

2

它好像我有一個命名空間問題。現在,更正了包含app/config/routing.yml作品中的資源的「resource:」中的命名空間。

biberltd_currency: 
    resource: "@VendorNameSampleBundle/Resources/config/routing.yml" 
    prefix: /
相關問題