2014-01-12 78 views
0

我開始將一個傳統應用程序轉換爲symfony,我的第一次使用PHP框架的經歷是zend,學習了zend 1. *我感到很舒服的一個點讓我過了一年,現在我向自己學習symfony我發現zend 2. *過於複雜。如何在routes.yml中組織路線?

隨着zend我習慣於創建一個控制器類和視圖來創建一個頁面。使用symfony,我必須創建路由條目,然後創建控制器類,最後創建視圖。

我的routes.yml長度超過100行,包含所有的需求,方法和whatnot,我約三分之一的項目。

我該如何保持這個文件的組織?現在看起來非常混亂。

回答

1

您的網站應分爲代表,它涉及該網站的部分束(從網站,我目前的工作)

AddressingBundle 
ChartBundle 
ContactBundle 
CoreBundle  // A bundle that contains all merging items (model, types, etc) 
CustomerBundle 
PaymentBundle 
PolicyBundle 
.. etc ... 

注:我用YAML進行路由。註釋是可用的,不需要額外的文件,但(可能)意味着缺乏路由的可重用性

在每個bundle中有一組路由文件可以包含或不包含。每個軟件包都有一個路由文件,位於Resources/config/routing.yml,鏈接到位於Resources/config/routing/的文件選擇。

然後,對於主要的app/config/routing.yml文件,我可以根據需要鏈接到外部(Resources/config/routing.yml)或內部(Resources/config/routing/something.yml)。此外,它還使您能夠根據前綴使用不同路徑多次使用相同的路由。

UPDATE: 束的想法是分離的擔憂。因此,對於我來說(我從Sylius組成的大量盜取者)只有一個實體(客戶)的CustomerBundle,然後我有一個AddressingBundle與一個實體(地址)。這些可以單獨工作,但使用CoreBundle中的數據進行連接。這樣,如果我需要編輯客戶部分,我只需編輯CustomerBundle並確保它以相同的方式進行交互。從技術上講,沒有公共和私有捆綁(由於它們都在根下),只有通過路由和安全性公開的路由。

+0

我的項目將有一個公共捆綁被訪問者訪問,所以我想我只需要兩個捆綁包:AdminBundle和PublicBundle,但根據您的答案來處理管理包的管理任務,我應該創建更多, 那是對的嗎? – MikeGA

+0

請參閱我的更新。 – qooplmao

+0

優秀!你已經把我放在正確的道路上。 – MikeGA