Faster early returns

This commit is contained in:
Valithor Obsidion 2025-02-05 11:21:13 -05:00
parent ccb5a236a0
commit 9fdef6b250

View File

@ -63,11 +63,9 @@ trait SegmentRouterTrait
// node is a reference to our current location in the node tree // node is a reference to our current location in the node tree
$node = $routes; $node = $routes;
// if the URI is just a slash, we can return the handler for the root node // if the URI is the root, and the method is defined, return the handler
if ($uri === '/') { if ($uri === '/' && isset($node[$method]) && array_key_exists($method, $node)) {
return isset($node[$method]) return ['code' => 200, 'handler' => $node[$method], 'params' => null];
? ['code' => 200, 'handler' => $node[$method], 'params' => null]
: ['code' => 405, 'handler' => null, 'params' => null];
} }
// params will hold any dynamic segments we find // params will hold any dynamic segments we find
@ -84,9 +82,11 @@ trait SegmentRouterTrait
} }
// if we found a handler for the method, return it and any params. if not, return a 405 // if we found a handler for the method, return it and any params. if not, return a 405
return isset($node[$method]) if (array_key_exists($method, $node)) {
? ['code' => 200, 'handler' => $node[$method], 'params' => $params] return ['code' => 200, 'handler' => $node[$method], 'params' => $params];
: ['code' => 405, 'handler' => null, 'params' => []]; }
return ['code' => 405, 'handler' => null, 'params' => []];
} }
/** /**