自動(dòng)路由面對(duì)復(fù)制的目錄結(jié)構(gòu)時(shí)無(wú)能為力
把路由寫在一個(gè)文件性能又不好,webman既然已經(jīng)常駐內(nèi)存了,不如最低版本要求提高到php8,加上注解路由,框架啟動(dòng)時(shí)讀取app目錄下的所有控制器,把注釋路由緩存起來(lái),每次訪問(wèn)都只需要讀取緩存,這樣寫業(yè)務(wù)的時(shí)候直接在方法上面的注解里設(shè)置路由、中間件這些玩意 不需要再去改路由文件之類的
<?php
class TestController
{
#[ Method("GET", "POST") ]
#[ Url("/article/create") ]
function create() {
#...
return view('...');
}
}
這個(gè)自己也可以實(shí)現(xiàn) 不過(guò)集成在框架里應(yīng)該更好
FPM模式下整注解,要把所有控制器讀取一遍,從性能考慮,使用注解路由模式不現(xiàn)實(shí)
常駐內(nèi)存的應(yīng)用 感覺(jué)單獨(dú)整一個(gè)route.php有點(diǎn)脫褲子放屁了,webman完全可以有一套自己的玩法
route.php可以啟動(dòng)時(shí)直接加載, 注解啟動(dòng)時(shí)需要遍歷+反射再生成
別忘了還有對(duì)應(yīng)的分組,中間件注冊(cè)
沒(méi)有路由寫到一個(gè)文件性能不好的說(shuō)法哈。
單獨(dú)路由配置文件有很大優(yōu)勢(shì),路由集中管理,有哪些路由看起來(lái)很直觀,修改維護(hù)也非常方便。
webman本身有默認(rèn)路由,大部分情況下默認(rèn)路由就夠用了,少數(shù)幾個(gè)路由在路由配置里定制下就完事了。不需要每個(gè)控制器去配置路由。
注解路由也是一直想支持的功能,包括注解中間件、緩存等。但是這些不是非常必要功能,我更傾向與通過(guò)插件來(lái)實(shí)現(xiàn),有需要注解路由的就安裝插件,不需要的就不裝。
如果誰(shuí)想實(shí)現(xiàn)注解路由歡迎給webman/auto-route發(fā)pr(注意判斷下如果低于php8就不執(zhí)行注解路由邏輯)。注解路由放到auto-route插件非常合適。
從來(lái)不用注解的路過(guò),不要?jiǎng)硬粍?dòng)就8.0。route.php 單獨(dú)路由配置文件是最好的
我遇到的問(wèn)題是: 項(xiàng)目有很多渠道, 每次添加一個(gè)渠道就要添加一個(gè)sdk代碼文件, 然后再去route.php添加路由,感覺(jué)是有點(diǎn)麻煩,如果用默認(rèn)的路由,又不能自定義類似 /api/v1的格式
默認(rèn)路由完全夠用,但是中間件只能夠精確到應(yīng)用
如果想靈活使用中間件的話就在路由配置里改
使用注解的話調(diào)整的時(shí)候比較麻煩,不夠集中化管理,不推薦繼承到項(xiàng)目中,如果自己想用可以自己加
默認(rèn)路由多應(yīng)用圖如下