分析ecmall中startup()函数

2009-08-13 22:00 来源:www.chinab4c.com 作者:ecshop专家

      在ecmall电子商务系统中,我们可以看到index.php中有个代码startup();他传递的参数是一个函数,函数中的参数是以下意思.

  1:default_app代表默认的控制器

     2:default_act代表action

     3:app_root控制器跟目录

    4:external_libs包括一些扩展的函数.

 ECMall是/eccore/ecmall.php目录下的一个类,负责调用所有操作的控制器和动作action.

    startup()函数中,有以下代码.

  $default_app = $config['default_app'] ? $config['default_app'] : 'default';
        $default_act = $config['default_act'] ? $config['default_act'] : 'index';

        $app    = isset($_REQUEST['app']) ? trim($_REQUEST['app']) : $default_app;
        $act    = isset($_REQUEST['act']) ? trim($_REQUEST['act']) : $default_act;
        $app_file = $config['app_root'] . "/{$app}.app.php";
        if (!is_file($app_file))
        {
            exit('Missing controller');
        }

        require($app_file);
        define('APP', $app);
        define('ACT', $act);
        $app_class_name = ucfirst($app) . 'App';

        /* 实例化控制器 */
        $app     = new $app_class_name();
        c($app);
        $app->do_action($act);        //转发至对应的Action
        $app->destruct();

       通过获取控制器,对控制器进行实例化.

  来源:中国B4C电子商务