/** * @param array $config */ protected function init(array $config) { Cordillera::$instance = new DI(); $classmap = $classmap_source = (require CORDILLERA_DIR . 'classmap.php'); if (is_file(CORDILLERA_APP_DIR . 'config' . DS . 'classmap.php')) { $classmap = array_merge($classmap, (array) (require CORDILLERA_APP_DIR . 'config' . DS . 'classmap.php')); } // Lazy loading Cordillera::$instance->share('config', function () use($config) { return new Config($config); }); Cordillera::$instance->share('session', function () use($classmap, $classmap_source) { return Cordillera::factory($classmap['session'], [app()->config->get('session.key'), app()->config->get('session.path'), app()->config->get('session.lifetime'), app()->config->get('session.cookie')], $classmap_source['session']); }); Cordillera::$instance->share('logger', function () use($classmap, $classmap_source) { return Cordillera::factory($classmap['logger'], [app()->config->get('logger', [])], $classmap_source['logger']); }); Cordillera::$instance->share('request', function () use($classmap, $classmap_source) { return Cordillera::factory($classmap['request'], [app()->session, app()->response, app()->config->get('request.csrf', false)], $classmap_source['request']); }); Cordillera::$instance->share('db', function () use($classmap, $classmap_source) { return Cordillera::factory($classmap['db'], [app()->config->get('db.dsn'), app()->config->get('db.username'), app()->config->get('db.password'), app()->config->get('db.options', [])], $classmap_source['db']); }); Cordillera::$instance->share('router', function () use($classmap, $classmap_source) { return Cordillera::factory($classmap['router'], [app()->request->base_url, app()->request->script_name, app()->config->get('response.default'), $classmap['controller'], app()->config->get('router.rules'), app()->config->get('router.show_index_file'), app()->config->get('router.match_types', [])], $classmap_source['router']); }); Cordillera::$instance->share('auth', function () use($classmap, $classmap_source) { return Cordillera::factory($classmap['auth'], [app()->session], $classmap_source['auth']); }); Cordillera::$instance->share('lang', function () use($classmap, $classmap_source) { return Cordillera::factory($classmap['lang'], [app()->config->get('language', 'en')], $classmap_source['lang']); }); Cordillera::$instance->share('response', function () use($classmap, $classmap_source) { return Cordillera::factory($classmap['response'], [], $classmap_source['response']); }); }
/** * @return Controller * * @throws Exception */ public function dispatch() { $match = $this->match(); if (class_exists($this->_controller_classname)) { $controller = $this->_controller_classname; } else { Cordillera::$exception = new Exception(translate('%s not found', [$this->_controller_classname]), 500, Exception::ERROR); $controller = 'cordillera\\middlewares\\Controller'; } $this->handler = ''; if (isset($match['friendly']) && !$match['friendly']) { $this->handler = $match['handler'] ? $match['handler'] : $this->_default_route; } elseif (isset($match['friendly']) && $match['friendly']) { $this->handler = $match['handler']; $_GET = array_merge($_GET, $match['params']); } elseif (!isset($match['friendly'])) { $this->handler = $match != '/' && $match != '' ? $match : $this->_default_route; } return new $controller($this); }
/** * @return \cordillera\base\Application */ function app() { return \cordillera\base\Cordillera::app(); }