從資料庫查詢路由: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 授權條款授權。