1. Dispatcher构造器
在后台入口index文件中define('_PS_ADMIN_DIR_', getcwd());
在Dispatcher构造器控制器中
if (defined('_PS_ADMIN_DIR_'))
{
$this->front_controller = self::FC_ADMIN;
得到正确的后台管理控制器$this->front_controller =2
2. Dispatcher中的适配方法dispatch()
由case self::FC_ADMIN :
这段代码, 来调度后台控制器,
或者后台模块控制器
$this->getController();
得到后台控制器,若没有指定,则使用默认的控制器。
$tab = Tab::getInstanceFromClassName($this->controller, Configuration::get('PS_LANG_DEFAULT'));
得到get过来的控制器的名称,然后在后台标签数据表中查找
得到如下格式数据(商家入驻):
Tab Object
(
[name] => 入驻管理 //后台菜单项
[class_name] => AdminA9M // 后台控制器名称
[module] => a9mbusiness //表示为模块中的控制器,若为空,则是非模块,而为系统自带控制器
如果是模块控制器的话,控制器为四级结构,多了一级模块后台控制器