Como obter uma matriz de todos os controladores em um projeto Codeigniter?

Gostaria de obter uma lista de todos os controladores em um projeto do Codeiginiter para que eu possa facilmente rotear cada um deles e adicionar rotas definidas. Não consigo encontrar um método que me dê o que eu quero?

Aqui está o trecho de código do arquivo route.php onde eu gostaria de acessar a matriz: –

// I'd like $controllers to be dynamically populated by a method // $controllers = array('pages', 'users'); // Loop through each controller and add controller/action routes // foreach ($controllers as $controller) { $route[$controller] = $controller . '/index'; $route[$controller . '/(.+)'] = $controller . '/$1'; } // Any URL that doesn't have a / in it should be tried as an action against // the pages controller // $route['([^\/]+)$'] = 'pages/$1'; 

UPDATE # 1

Para explicar um pouco mais o que estou tentando alcançar .. Tenho um controlador de páginas que contém páginas como, entre em contato, privacidade, etc. Estas páginas devem ser acessadas através de / about, / contact-us e / privacy . Então, basicamente, qualquer ação / método no controlador de Páginas deve ser acessível sem precisar especificar / páginas / .

Não tenho certeza se eu vou sobre o caminho certo?

Bem, para responder diretamente à pergunta de codificação, você pode fazer isso:

 foreach(glob(APPPATH . 'controllers/*' . EXT) as $controller) { $controller = basename($controller, EXT); $route[$controller] = $controller . '/index'; $route[$controller . '/(.+)'] = $controller . '/$1'; } 

Buuuuuut isso pode não funcionar para ser o método mais flexível mais abaixo.

Existem algumas outras maneiras de fazê-lo. Um é criar um MY_Router e inserir

 $this->set_class('pages'); $this->set_method($segments[0]); 

antes / em vez de show_404 ();

Isso enviará / contato para / páginas / contato, mas somente se nenhum controlador, método, rotas estiverem mapeados primeiro.

OOOOOOORRRRRR usa Separação Modular e adicione o seguinte às suas rotas principais.php

 $routes['404'] = 'pages';