Phlyty\Route::controller PHP Method

controller() public method

Retrieve controller assigned to this route
public controller ( ) : callable
return callable
    public function controller()
    {
        if (is_string($this->controller) && !is_callable($this->controller) && !class_exists($this->controller)) {
            throw new Exception\InvalidControllerException(sprintf('Invalid controller specified: "%s"', $this->controller));
        }
        if (is_string($this->controller) && !is_callable($this->controller) && class_exists($this->controller)) {
            $controller = $this->controller;
            $this->controller = new $controller();
        }
        if (!is_callable($this->controller)) {
            $controller = $this->controller;
            if (is_array($controller)) {
                $method = array_pop($controller);
                $controller = array_pop($controller);
                if (is_object($controller)) {
                    $controller = get_class($controller);
                }
                $controller .= '::' . $method;
            }
            if (is_object($controller)) {
                $controller = get_class($controller);
            }
            throw new Exception\InvalidControllerException(sprintf('Controller "%s" is not callable', $controller));
        }
        return $this->controller;
    }