Мне нужно запустить функцию для выполнения некоторых действий с каждым именем контроллера в моем проекте. Моя функция определена на контроллере следующим образом:
class Some_Controller extends CI_Controller{ public function someActions(){ // $listOfAllControllers = some_method_I_need_for_my_answer(); foreach($listOfAllControllers as $controllerName){ // some_action($controllerName) } } }
Я хочу динамический список всех контроллеров, которые существуют в моем проекте .
Вам необходимо отсканировать свой /application/controllers directory
и удалить из него расширение файла
$controllers = array(); $this->load->helper('file'); // Scan files in the /application/controllers directory // Set the second param to TRUE or remove it if you // don't have controllers in sub directories $files = get_dir_file_info(APPPATH.'controllers', FALSE); // Loop through file names removing .php extension foreach ( array_keys($files) as $file ) { if ( $file != 'index.html' ) $controllers[] = str_replace('.php', '', $file); } print_r($controllers); // Array with all our controllers
ИЛИ
Вы также можете следовать этой ссылке, чтобы достичь этого
список контроллеров
foreach(glob(APPPATH . 'controllers/*' . 'php') as $controller){ $controller = basename($controller, '.php'); }