예제 #1
0
파일: ac.php 프로젝트: rperello/Anidcore
 public static function __init()
 {
     if (empty(self::$observer)) {
         self::$reg = new stdClass();
         self::$finals = array();
         self::$observer = new Ac_Observer();
         self::$loader = Ac_Loader::getInstance();
         self::$config = static::trigger('AcBeforeInit', self::$loader->getConfig());
         if (empty(self::$context)) {
             self::$context = Ac_Context::getInstance();
         }
         static::trigger('AcLoaderLoad');
         self::$session = new Ac_Model_Globals_Session(self::config("session.name"), self::config("session.sessid_lifetime"), self::config("session.sessid_fingerprint_data"));
         self::$session->start();
         if (empty(self::$request)) {
             self::$request = new Ac_Http_Request(self::$context);
         }
         if (empty(self::$response)) {
             self::$response = new Ac_Http_Response(self::$request);
         }
         //Initialize db connections (and connect if autoconnect==true in their config)
         self::db();
         if (empty(self::$router)) {
             self::$router = new Ac_Router();
         }
         //load app module
         self::module("app", true);
         //load and initialize all modules defined in modules.autoload
         foreach (self::config("modules.autoload") as $moduleName) {
             if ($moduleName != "app") {
                 self::module($moduleName, true);
             }
         }
         self::loader()->setActiveModule("app");
         //resolve request resource
         self::$router->resolve();
         static::trigger('AcInit');
     }
 }