[英]Routing Class like Slim Framework
我使用Slim Framework for Routing編寫了一個CMS。 現在,我想將所有代碼放在類中的Routes中,並由我自己連接網址(沒有Slim)
我有一個包含如下路由的數據庫表:
url: /app/user/list
URI: index.php?com=user&fnc=list
但我也想擁有這樣的路由以便動態管理路由:
url: /app/user/:id/profile
URI: index.php?com=user&func=profile&uid={id}
Slim框架使用正則表達式處理這些路由。 這也是我也要處理的方式。 但是我對正則表達式不太滿意。
我的想法是,我構建一個小的Router類,將當前的URL連接起來並在數據庫表中搜索以獲得uri,以便我可以使用其函數(fnc)調用該類(com)。 例如,配置文件函數獲取uid。
不幸的是,我無法排除苗條框架中使用的功能。 我什至不想使用其他框架。
所以我的問題是: 有沒有人建立過我解釋過的課程?是否有任何起點可以擴展? 一些代碼也很好:D
(我使用Smarty Template Engine渲染特定的tpl)
這是一項訓練活動,例如向自己證明自己可以做到嗎?
您可以(不使用正則表達式)用/字符分割請求uri,然后依次遍歷數組,並使用與ActiveRecord相同的機制(據我所知),即
優點之一是您可以使用反射和動態方法(ahem函數)調用 ...
這樣,您甚至不需要擁有所有可能的uri的數據庫(除了白名單),您只需要檢查類(通過自動加載或使用Java方式通過文件系統):一個類=一個文件或方法是否存在(通過method_exists )來滿足請求。
我曾經將這種技術用於基於Flex的客戶端的Web服務原型:構建Flex客戶端的那個家伙事先不知道他需要的表,而且我不可用(讀為“ assigned”)為他可能調用的每個電話做包裝因此,我最終編寫了一些代碼,這些代碼使用oracle元數據來檢查模式中是否存在表,然后在PHP中動態圍繞它構建CRUD(粗略,我知道)包裝器:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.