自动路由面对复制的目录结构时无能为力
把路由写在一个文件性能又不好,webman既然已经常驻内存了,不如最低版本要求提高到php8,加上注解路由,框架启动时读取app目录下的所有控制器,把注释路由缓存起来,每次访问都只需要读取缓存,这样写业务的时候直接在方法上面的注解里设置路由、中间件这些玩意 不需要再去改路由文件之类的
<?php
class TestController
{
#[ Method("GET", "POST") ]
#[ Url("/article/create") ]
function create() {
#...
return view('...');
}
}
这个自己也可以实现 不过集成在框架里应该更好
FPM模式下整注解,要把所有控制器读取一遍,从性能考虑,使用注解路由模式不现实
常驻内存的应用 感觉单独整一个route.php有点脱裤子放屁了,webman完全可以有一套自己的玩法
route.php可以启动时直接加载, 注解启动时需要遍历+反射再生成
别忘了还有对应的分组,中间件注册
都常驻内存了,都写在一个route.php里没什么性能影响了吧。
没什么影响但是不方便啊 直接写在方法里不顺手多了 就想springboot一样
主要是管理起来比较麻烦,看路由还要一个一个文件去找,多人开发会很痛苦
没有路由写到一个文件性能不好的说法哈。
单独路由配置文件有很大优势,路由集中管理,有哪些路由看起来很直观,修改维护也非常方便。
webman本身有默认路由,大部分情况下默认路由就够用了,少数几个路由在路由配置里定制下就完事了。不需要每个控制器去配置路由。
注解路由也是一直想支持的功能,包括注解中间件、缓存等。但是这些不是非常必要功能,我更倾向与通过插件来实现,有需要注解路由的就安装插件,不需要的就不装。
如果谁想实现注解路由欢迎给webman/auto-route发pr(注意判断下如果低于php8就不执行注解路由逻辑)。注解路由放到auto-route插件非常合适。
个人觉得写在一个 route.php里非便方便,建议目前这种就行了!
单独路由配置文件有很大优势,路由集中管理,有哪些路由看起来很直观,修改维护也非常方便。+1
单独路由配置文件有很大优势,路由集中管理,有哪些路由看起来很直观,修改维护也非常方便。+2
+1
+1
我还是喜欢单独配置管理,找起来方便啊。
使用注解路由的确是方便,但后期维护起来,有时候就有点难找,如果项目大的话
注解路由,然后生成缓存文件
route.php
不也一样?问题是有多少人用php 8.,统计下再说话,7.版本目前是主流
可以用swagger实现,并不一定要用php8
我遇到的问题是: 项目有很多渠道, 每次添加一个渠道就要添加一个sdk代码文件, 然后再去route.php添加路由,感觉是有点麻烦,如果用默认的路由,又不能自定义类似 /api/v1的格式
注解路由有插件
https://www.workerman.net/plugin/52
https://www.workerman.net/plugin/99
嗯嗯, 考虑用这个, 如果官方能有更好了 :)
默认的路由可以实现 /api/v1 的格式,参考多应用
默认路由完全够用,但是中间件只能够精确到应用
如果想灵活使用中间件的话就在路由配置里改
使用注解的话调整的时候比较麻烦,不够集中化管理,不推荐继承到项目中,如果自己想用可以自己加
默认路由多应用图如下
原来如此, 又学到了
建议自己写个command,把注解生成路由到route.php,或者做成组件,按需加载