zhamao-robot / zhamao-framework

协程、高性能、灵活的聊天机器人 & Web 开发框架(炸毛框架)
https://framework.zhamao.xin
Apache License 2.0
158 stars 26 forks source link

修复中间件传参解析冲突 #282

Closed sunxyw closed 1 year ago

crazywhalecc commented 1 year ago

是不是意思就是,已经绑定的对象,不能再次在 call 时传入相同的对象?

sunxyw commented 1 year ago

是不是意思就是,已经绑定的对象,不能再次在 call 时传入相同的对象?

实际上是尽量避免以数字索引作为参数,因为我们没法约束用户获取参数的顺序,但因为 Pipeline 的实现不支持传入关联数组,所以建议仅传入必要的参数,一些本身已经绑定到容器的实例就没必要重复传入,因为可以直接从容器中解析。

另一类比如路由的 $params,就只能继续传入,但这样带来的问题就是方法定义的参数必须依据传入的顺序,即 $params 参数必须为第一个。

换言之,如果在调用处理时传入了参数,则监听该事件的方法也必须以相同的顺序接受参数。