Example #1
0
 /**
  * @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']);
     });
 }
Example #2
0
 /**
  * @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);
 }
Example #3
0
/**
 * @return \cordillera\base\Application
 */
function app()
{
    return \cordillera\base\Cordillera::app();
}