|
本帖最后由 chzyer 于 2012-5-15 22:55 编辑
实际上CI的二级目录有时候不能满足需求.比如admincp.
admincp本身一般情况下需要两级目录,再加上admincp,那就是3级.但是其他可能仅仅需要两级目录便可满足需求.这样,我觉得有必要搞一个动态扩展controller的功能
我研究出一个方案
比如说/index.php/admincp/home/contact_us
可以在controller下建一个admincp-home.php的文件.
在admincp下给home提供跳转
对.当需要扩展的时候就调用expand_controller();
expand_controller()就是我们自己写的helper了
PHP复制代码 if ( ! function_exists('expand_controller')){
function expand_controller (){
$ci =& get_instance ();
$controller_name = $ci->uri->rsegments[1];
$sub_controller_name = $ci->uri->rsegments[2];
$default_method = isset($ci->uri->rsegments[3]) ? $ci->uri->rsegments[3] : 'index';
$file_path = APPPATH ."controllers/{$controller_name}-{$sub_controller_name}.php";
if ( ! file_exists($file_path)){
show_404 ();
}
include $file_path;
if ( ! class_exists($sub_controller_name)){
show_404 ();
}
$instance = new $sub_controller_name();
$instance->{$default_method}();
}
}
复制代码
对于不需要扩展的还是可以沿用CI本身的结构.
不过,我只是抛砖引玉了一下,通过/index.php/admincp-home/访问还是会出现问题的.暂时的方法姑且是修改route.php
|
评分
-
查看全部评分
|