gpt4 book ai didi

php - 如何在 codeigniter 中列出所有 Controller 类名?

转载 作者:可可西里 更新时间:2023-11-01 00:16:54 26 4
gpt4 key购买 nike

我想为我的网站后端创建具有访问级别的用户身份验证。我想获取并列出所有 Controller 类名称以创建用户组。

提前致谢

洛根

最佳答案

最好的办法是将它们显式写入新的配置文件。

$config['controllers'] = array(
'blog',
'events',
'news', // etc.
);

否则,您将扫描会耗尽资源的目录。但你可以这样做:

    $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)
{
$controllers[] = str_replace(EXT, '', $file);
}
print_r($controllers); // Array with all our controllers

由于文件名与 Controller 名称匹配,现在您应该拥有所有 Controller 的数组。尽管出于多种原因,这并不完美,但应该适用于大多数设置。

就我个人而言,我使用经过高度修改的目录结构,所以这对我来说不起作用,而且我也想忽略一些 Controller 。另一种选择是将结果缓存到文件中,但这是一个单独的教程。

我强烈建议在配置文件中定义它们,这样您就可以存储与访问控制直接相关的其他有用信息,并避免递归扫描目录的巨大开销。

关于php - 如何在 codeigniter 中列出所有 Controller 类名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5919546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com