src/ReflectionController.php
public function getChildController($controllerName)
    {
        $methodName = $this->parseControllerName($controllerName);
        if (!$this->reflection->hasMethod($methodName)) {
            throw new \RuntimeException("{$this->reflection->getName()}::{$methodName} does not exist");
        }

        $controller = $this->reflection->getMethod($methodName)->invokeArgs($this->controller, []);
        if (!is_object($controller) || !$controller instanceof Controller) {
            throw new \RuntimeException("{$this->reflection->getName()}::{$methodName} did not return a Controller");
        }
        return $controller;
    }
public function getChildController($controllerName)
    {
        $methodName = $this->parseControllerName($controllerName);
        if (!$this->reflection->hasMethod($methodName)) {
            throw new \RuntimeException("{$this->reflection->getName()}::{$methodName} does not exist");
        }

        $controller = $this->reflection->getMethod($methodName)->invokeArgs($this->controller, []);
        if (!is_object($controller) || !$controller instanceof Controller) {
            throw new \RuntimeException("{$this->reflection->getName()}::{$methodName} did not return a Controller");
        }
        return $controller;
    }
Get the child controller object.

Gets the new child controller object from the child controller class
method. If the method does not exist, or the returned value is not a
controller object, a \RuntimeException is thrown.

@throws \RuntimeException
@param $controllerName
@return Controller