Example #1
0
 /**
  * Creates instance of App class and initialize the application
  *
  * @param array $params initialization parameters
  * @return void
  * @static
  */
 public static function create(array $params = null)
 {
     self::$app_mode = self::MODE_DEVELOPMENT;
     if (is_null(self::$instance)) {
         self::$instance = new self();
     }
     // setting up autoloader
     spl_autoload_register(array('App', 'autoload'));
     try {
         // setup config
         Config::create(isset($params['config']) ? $params['config'] : null);
         Config::setVar($params);
         // application mode
         self::setMode(Config::getVar('mode', self::MODE_DEVELOPMENT));
         // our error handler
         if (!self::isDevMode()) {
             set_error_handler(array('App', 'handleErrors'));
         }
         // language specific params
         if (function_exists('mb_internal_encoding')) {
             mb_internal_encoding(Config::getVar('app_encoding', 'UTF-8'));
         }
         if (function_exists('date_default_timezone_set')) {
             date_default_timezone_set(Config::getVar('app_timezone', 'UTC'));
         }
         setlocale(LC_CTYPE, Config::getVar('app_locale', 'en_US.UTF-8'));
         // creating base objects
         Log::create();
         Request::create();
         // saving application params
         self::$params = $params;
         // unregister globals
         if (ini_get('register_globals')) {
             self::unregisterGlobals(array('_POST', '_GET', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES'));
             ini_set('register_globals', false);
         }
     } catch (Exception $e) {
         self::$instance->handleDefaultException($e);
     }
 }