Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. class Controller {
  2. public function demo()
  3. {
  4. echo 'Hello world';
  5. }
  6. }
  7.  
  8. <?php
  9.  
  10. require_once __DIR__.'/vendor/autoload.php';
  11.  
  12. use FastRouteRouteCollector;
  13. use FastRoutesimpleDispatcher;
  14. use FastRouteDispatcher;
  15.  
  16. $dispatcher = FastRoutesimpleDispatcher(function(FastRouteRouteCollector $r){
  17. // test route
  18. $r->addRoute('GET', '/', 'Controller@demo');
  19. });
  20.  
  21. // Fetch method and URI from somewhere
  22. $httpMethod = $_SERVER['REQUEST_METHOD'];
  23. $uri = $_SERVER['REQUEST_URI'];
  24.  
  25. // Strip query string (?foo=bar) and decode URI
  26. if (false !== $pos = strpos($uri, '?')) {
  27. $uri = substr($uri, 0, $pos);
  28. }
  29. $uri = rawurldecode($uri);
  30.  
  31. $routeInfo = $dispatcher->dispatch($httpMethod, $uri);
  32. switch ($routeInfo[0]) {
  33. case FastRouteDispatcher::NOT_FOUND:
  34. // ... 404 Not Found
  35. break;
  36. case FastRouteDispatcher::METHOD_NOT_ALLOWED:
  37. $allowedMethods = $routeInfo[1];
  38. // ... 405 Method Not Allowed
  39. break;
  40. case FastRouteDispatcher::FOUND:
  41. $handler = $routeInfo[1];
  42. $vars = $routeInfo[2];
  43. list($class, $method) = explode("@", $handler, 2);
  44. call_user_func_array([$class, $method], $vars);
  45. break;
  46. }
  47.  
  48. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement