首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CodeIgniter --如何动态获取我所有控制器的列表?

CodeIgniter --如何动态获取我所有控制器的列表?
EN

Stack Overflow用户
提问于 2015-06-09 05:48:52
回答 2查看 1.1K关注 0票数 2

我需要运行一个函数来对我的项目中的每个控制器名执行一些操作。我的函数是在如下控制器上定义的:

代码语言:javascript
运行
复制
class Some_Controller extends CI_Controller{
    public function someActions(){
        // $listOfAllControllers = some_method_I_need_for_my_answer();
        foreach($listOfAllControllers as $controllerName){
            // some_action($controllerName)
        }
    }
}

我想要的是--我的项目中存在的所有控制器的动态列表。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-09 05:52:29

您需要扫描/application/controllers directory并从其中删除文件扩展名。

代码语言:javascript
运行
复制
    $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

您也可以按照此链接来实现这一目标。

控制器列表

票数 3
EN

Stack Overflow用户

发布于 2016-07-11 08:29:10

代码语言:javascript
运行
复制
foreach(glob(APPPATH . 'controllers/*' . 'php') as $controller){
   $controller = basename($controller, '.php');
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30723876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档