2014-06-14 61 views
0

我有一個名爲MenuNavigatin類,並使用它的頂部菜單ZF2導航和網站地圖

class MenuNavigation extends DefaultNavigationFactory 

是它來查詢​​和500級的產品添加到這個類來使用這個導航地圖爲一個好的做法呢?
或者我應該有另一類網站地圖和麪包屑?
或者當生成網站地圖時可能會添加網站地圖特定的網址

回答

1

Zend \ Navigation對於許多頁面來說通常很慢。我絕對不會在每個請求上將所有500頁添加到您的導航。我想補充只需要對知識基礎,這也許是那些網頁:

  1. 對於正常瀏覽,你可能不需要任何的產品在你的主菜單,所以你只可能有「家」和「產品」等頁面
  2. 當您選擇產品時,您希望將其作爲「產品」的子項,以便在訪問產品時「菜單」在菜單中處於活動狀態。因此,從您選擇的產品中創建一個頁面,並在派發此控制器/操作時將其添加到「產品」父項中。
  3. 對於站點地圖,您可能希望包含所有產品以幫助搜索引擎找到您的產品。只有在這個請求你應該解析產品並將它們添加爲頁面。

對於第三種情況,你可以做各種事情來加快這一渲染:

  1. 緩存Sitemap的結果,所以接下來visist將有一個快速的響應
  2. 熱身緩存時,您的站點地圖中的某些內容會發生變化(您可能會異步執行此操作)

此外,向站點地圖添加頁面是啓用事件管理器的完美正當理由。您的站點地圖控制器將觸發一個事件,並且您的產品模塊將監聽事件。接下來,它添加所有這些頁面。這可以幫助你解耦你的應用程序,當你想要合併類似的東西時(比如添加500個事件),你可以簡單地爲你的站點地圖控制器添加一個監聽器,並將它們添加爲頁面。