What are the advantages and disadvantages of creating a custom router in PHP compared to using existing solutions?

Creating a custom router in PHP allows for more control over routing logic and can cater to specific project requirements. However, it requires more time and effort to implement and maintain compared to using existing solutions like popular PHP routing libraries.

// Custom Router Implementation
class Router {
    private $routes = [];

    public function addRoute($method, $path, $callback) {
        $this->routes[$method][$path] = $callback;
    }

    public function handleRequest($method, $path) {
        if (isset($this->routes[$method][$path])) {
            $callback = $this->routes[$method][$path];
            call_user_func($callback);
        } else {
            echo "404 Not Found";
        }
    }
}

// Example Usage
$router = new Router();
$router->addRoute('GET', '/hello', function() {
    echo "Hello World!";
});

$router->handleRequest($_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI']);