function findControllerForView ($viewName)
  {
    /** @var DocumentContext $this */
    $path = $this->viewService->resolveTemplatePath ($viewName, $base);
//    inspect ($viewName, $base, $path);
    if (isset($this->controllers[$path]))
      return $this->controllers[$path];

    foreach ($this->controllerNamespaces as $nsPath => $ns) {
//      inspect ($nsPath, $ns);
      if (str_beginsWith ($path, $nsPath)) {
        $remaining = substr ($path, strlen ($nsPath) + 1);
        $a         = PS ($remaining)->split ('/');
        $file      = $a->pop ();
        $nsPrefix  = $a->map ('ucfirst', false)->join ('\\')->S;
        $class     = ($p = strpos ($file, '.')) !== false
          ? ucfirst (substr ($file, 0, $p))
          : ucfirst ($file);
        $FQN       = PA ([$ns, $nsPrefix, $class])->prune ()->join ('\\')->S;
//        inspect ("CLASS $FQN");
        if (class_exists ($FQN))
          return $FQN;
      }
    }
//    inspect ("CLASS NOT FOUND FOR VIEW $viewName");
    return null;
  }
function findControllerForView ($viewName)
  {
    /** @var DocumentContext $this */
    $path = $this->viewService->resolveTemplatePath ($viewName, $base);
//    inspect ($viewName, $base, $path);
    if (isset($this->controllers[$path]))
      return $this->controllers[$path];

    foreach ($this->controllerNamespaces as $nsPath => $ns) {
//      inspect ($nsPath, $ns);
      if (str_beginsWith ($path, $nsPath)) {
        $remaining = substr ($path, strlen ($nsPath) + 1);
        $a         = PS ($remaining)->split ('/');
        $file      = $a->pop ();
        $nsPrefix  = $a->map ('ucfirst', false)->join ('\\')->S;
        $class     = ($p = strpos ($file, '.')) !== false
          ? ucfirst (substr ($file, 0, $p))
          : ucfirst ($file);
        $FQN       = PA ([$ns, $nsPrefix, $class])->prune ()->join ('\\')->S;
//        inspect ("CLASS $FQN");
        if (class_exists ($FQN))
          return $FQN;
      }
    }
//    inspect ("CLASS NOT FOUND FOR VIEW $viewName");
    return null;
  }
function findControllerForView ( $ viewName ) { /** @var DocumentContext $this */ $ path = $ this -> viewService -> resolveTemplatePath ( $ viewName , $ base ) ; //    inspect ($viewName, $base, $path); if ( isset ( $ this -> controllers [ $ path ] ) ) return $ this -> controllers [ $ path ] ; foreach ( $ this -> controllerNamespaces as $ nsPath => $ ns ) { //      inspect ($nsPath, $ns); if ( str_beginsWith ( $ path , $ nsPath ) ) { $ remaining = substr ( $ path , strlen ( $ nsPath ) + 1 ) ; $ a = PS ( $ remaining ) -> split ( '/' ) ; $ file = $ a -> pop ( ) ; $ nsPrefix = $ a -> map ( 'ucfirst' , false ) -> join ( '\\' ) -> S ; $ class = ( $ p = strpos ( $ file , '.' ) ) !== false ? ucfirst ( substr ( $ file , 0 , $ p ) ) : ucfirst ( $ file ) ; $ FQN = PA ( [ $ ns , $ nsPrefix , $ class ] ) -> prune ( ) -> join ( '\\' ) -> S ; //        inspect ("CLASS $FQN"); if ( class_exists ( $ FQN ) ) return $ FQN ; } } //    inspect ("CLASS NOT FOUND FOR VIEW $viewName"); return null ; }
Attempts to find a controller class for the given view template path.

@param string $viewName A view template absolute file path.
@return null|string null if no controller was found.
@throws \Electro\Exceptions\Fatal\FileNotFoundException
Attempts to find a controller class for the given view template path .