您最好的选择是明确地将它们写入新的配置文件.
$config['controllers'] = array(
'blog',
'events',
'news', // etc.
);
Run Code Online (Sandbox Code Playgroud)
否则,您将扫描会占用资源的目录.但你可以这样做:
$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
Run Code Online (Sandbox Code Playgroud)
由于文件名与控制器名称匹配,现在您应该拥有所有控制器的数组.虽然有几个原因,但这并不完美,但应该适用于大多数设置.
我个人使用高度修改的目录结构,所以这对我来说不起作用,而且我也想忽略一些控制器.另一种选择是将结果缓存到文件中,但这是一个单独的教程.
我强烈建议在配置文件中定义它们,这样您就可以存储与访问控制直接相关的其他有用信息,并避免递归扫描目录的巨大开销.
| 归档时间: |
|
| 查看次数: |
5063 次 |
| 最近记录: |