使用框架的默認路由來訪問的時候,會遇到一些困擾,這部分無法查看源代碼,只能通過猜測來分析。
如果項目有多個模塊,顯然使用yaf的默認的靜態路由是無法滿足需求的。
yaf默認的配置是著這樣的:
application.baseUri=”/======Index
依次說明一下作用
application.baseUri=”/” 這個是說明我們的domain後面就是要解析的內容,如果我們的application是通過文件夾a訪問的,baseUri就是/a 所以這個baseuri的目的就是表示出哪些部分是需要路由來處理的,哪些是真是的路徑。
默認的module是 Index,
application.dispatcher.defaultModule=Index
這一句經過測試發現修改是無效的,也就是說無法通過配置來修改默認的module,
而
application.dispatcher.defaultController=Index
application.dispatcher.defaultAction=index
即默認的 controller和默認的action相應的都是可以指派的。
再有就是為路由添加模塊,在新創建模塊的時候要將添加上的模塊通知給路由,這樣路由才能夠在request請求新模塊時該如何做
application.modules=Index用的是這一句,如果想添加新模塊 Myoo,則要在Index後面寫上,Myoo()。
變成 application.modules=Index,Myoo
原來用的框架的路由基本上都是默認模塊可以改而默認的controller和action不能改都是寫死的index
這種情況的好處是每個模塊都有指定的controller和action,如果要訪問 myoo模塊的 index控制器indexaction的話,只需要寫一個module名myoo就可以了。
現在yaf則不可以。默認的mudule是寫死的,而默認的controller和action是給默認的module用的,現在想訪問 myoo/index/index/的話,只能寫全,而不能只寫myoo,只寫myoo沒有controller和action,路由還是不知道最終的目的地是哪裡,就不會再從module中找了,myoo就被解析成默認的模塊的一個controller了,然後拋出一個404錯誤,
這個都沒有什麼問題,夠用了。
但是我覺得默認模塊不可更改這是不是一個bug,因為如果不能改為什麼要做上這個配置項呢。