微擎入口路由及其模块入口路由

一、微擎入口路由

微擎有2个入口文件

/web/index.php?c=site&a=entry
/app/index.php?c=entry

路由变量

$controller = $_GPC['c'];   //web入口缺省值=account,app入口=home
$action = $_GPC['a'];   //index.php入口文件开头`$acl`变量可配置默认方法
$do = $_GPC['do'];

不管$action是什么都会先引入如下文件

require IA_ROOT . "/web/source/{$controller}/__init.php";

如果$action未配置,则使用$controller目录下的第一个.strl.php文件的文件名作为$action

路由结果

require IA_ROOT . '/web/source/' . $controller . '/' . $action . '.ctrl.php';

二、微擎模块的入口

路由变量

$_GPC['m'];   //模块
$_GPC['do'];    //行为
$_GPC['eid'];   //入口ID,对应数据表`modules_bindings`

这里的路由有2种模式:

eid //模式1
m=&do= //模式2

路由结果文件

先从模块存放目录中寻找

require IA_ROOT . "/addons/{$_GPC['m']}/site.php";

如果不存在附加模块则从内置模块目录中寻找

IA_ROOT . "/framework/builtin/{$_GPC['m']}/site.php";

路由结果行为

/web/index.php入口:

$class = $_GPC['m'].'ModuleSite';   //模块类
$method = 'doWeb'.$_GPC['do'];  //行为
$class->$method();

/web/index.php入口:

$class = $_GPC['m'].'ModuleSite';   //模块类
$method = 'doMobile'.$_GPC['do'];   //行为
$class->$method();  //执行