跳到內容

從資料庫查詢路由:Symfony CMF DynamicRouter

編輯此頁

核心 Symfony 路由系統非常擅長處理複雜的路由集合。在部署期間,會傾印高度最佳化的路由快取。

然而,當處理大量需要美觀且可讀 URL 的資料(例如,為了搜尋引擎最佳化目的)時,路由可能會變慢。此外,如果路由需要由使用者編輯,則需要經常重建路由快取。

對於這些情況,DynamicRouter 提供了一種替代方法

  • 路由儲存在資料庫中;
  • 路徑欄位上有資料庫索引,查詢可以擴展到大量的不同路由;
  • 寫入只會影響資料庫的索引,這非常有效率。

當所有路由在部署時已知且數量不太高時,使用自訂路由載入器是新增更多路由的首選方式。當僅處理一種物件類型時,物件上的 slug 參數和 #[ParamConverter] 屬性運作良好(請參閱 FrameworkExtraBundle)。

DynamicRouter 在您需要具有 Symfony 完整功能集的 Route 物件時非常有用。每個路由都可以定義特定的控制器,因此您可以將 URL 結構與您的應用程式邏輯分離。

DynamicRouter 內建支援 Doctrine ORM 和 Doctrine PHPCR-ODM,但也提供 ContentRepositoryInterface 來編寫自訂載入器,例如用於其他資料庫類型或 REST API 或任何其他內容。

DynamicRouter 在 Symfony CMF 文件 中說明。

這項作品,包括程式碼範例,根據 Creative Commons BY-SA 3.0 授權條款授權。
目錄
    版本