Merge pull request #231 from zhamao-robot/fix-route-bug

修复 Route 注解无法正常解析的 Bug
This commit is contained in:
Jerry 2023-01-03 18:38:19 +08:00 committed by GitHub
commit 9c3e6ce8bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -33,14 +33,14 @@ class HttpEventListener
// TODO: 这里有个bug如果是用的Workerman+Fiber协程的话有个前置协程挂起这里获取到的Event是被挂起的Event对象触发两次事件才能归正
// 跑一遍 BindEvent 绑定了 HttpRequestEvent 的注解
$handler = new AnnotationHandler(BindEvent::class);
$handler->setRuleCallback(fn (BindEvent $anno) => $anno->event_class === HttpRequestEvent::class);
$handler->setRuleCallback(fn (BindEvent $anno) => is_a($anno->event_class, HttpRequestEvent::class, true));
$handler->handleAll($event);
// dump($event->getResponse());
$node = null;
/** @var null|array $params */
$params = null;
// 如果状态是 Normal那么说明跑了一遍没有阻塞或者其他的情况我就直接跑一遍内部的路由分发和静态文件分发
if ($handler->getStatus() === AnnotationHandler::STATUS_NORMAL && $event->getResponse() === null) {
if (($handler->getStatus() === AnnotationHandler::STATUS_NORMAL || $handler->getStatus() === AnnotationHandler::STATUS_RULE_FAILED) && $event->getResponse() === null) {
// 解析路由和路由状态
$result = HttpUtil::parseUri($event->getRequest(), $node, $params);
switch ($result) {