Rev 20 | Blame | Compare with Previous | Last modification | View Log | Download
<?php// Registry$registry = new Registry();// Config$config = new Config();$config->load('default');$config->load($application_config);$registry->set('config', $config);// Log$log = new Log($config->get('error_filename'));$registry->set('log', $log);date_default_timezone_set($config->get('date_timezone'));set_error_handler(function($code, $message, $file, $line) use($log, $config) {// error suppressed with @if (error_reporting() === 0) {return false;}switch ($code) {case E_NOTICE:case E_USER_NOTICE:$error = 'Notice';break;case E_WARNING:case E_USER_WARNING:$error = 'Warning';break;case E_ERROR:case E_USER_ERROR:$error = 'Fatal Error';break;default:$error = 'Unknown';break;}if ($config->get('error_display')) {echo '<b>' . $error . '</b>: ' . $message . ' in <b>' . $file . '</b> on line <b>' . $line . '</b>';}if ($config->get('error_log')) {$log->write('PHP ' . $error . ': ' . $message . ' in ' . $file . ' on line ' . $line);}return true;});// Event$event = new Event($registry);$registry->set('event', $event);// Event Registerif ($config->has('action_event')) {foreach ($config->get('action_event') as $key => $value) {foreach ($value as $priority => $action) {$event->register($key, new Action($action), $priority);}}}// Loader$loader = new Loader($registry);$registry->set('load', $loader);// Request$registry->set('request', new Request());// Response$response = new Response();$response->addHeader('Content-Type: text/html; charset=utf-8');$response->setCompression($config->get('config_compression'));$registry->set('response', $response);// Databaseif ($config->get('db_autostart')) {$registry->set('db', new DB($config->get('db_engine'), $config->get('db_hostname'), $config->get('db_username'), $config->get('db_password'), $config->get('db_database'), $config->get('db_port')));}// Session$session = new Session($config->get('session_engine'), $registry);$registry->set('session', $session);if ($config->get('session_autostart')) {/*We are adding the session cookie outside of the session class as I believePHP messed up in a big way handling sessions. Why in the hell is it so hard tohave more than one concurrent session using cookies!Is it not better to have multiple cookies when accessing parts of the systemthat requires different cookie sessions for security reasons.Also cookies can be accessed via the URL parameters. So why force only one cookiefor all sessions!*/if (isset($_COOKIE[$config->get('session_name')])) {$session_id = $_COOKIE[$config->get('session_name')];} else {$session_id = '';}$session->start($session_id);setcookie($config->get('session_name'), $session->getId(), ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain'));}// Cache$registry->set('cache', new Cache($config->get('cache_engine'), $config->get('cache_expire')));// Urlif ($config->get('url_autostart')) {$registry->set('url', new Url($config->get('site_url'), $config->get('site_ssl')));}// Language$language = new Language($config->get('language_directory'));$registry->set('language', $language);// OpenBay Pro$registry->set('openbay', new Openbay($registry));// Document$registry->set('document', new Document());// Config Autoloadif ($config->has('config_autoload')) {foreach ($config->get('config_autoload') as $value) {$loader->config($value);}}// Language Autoloadif ($config->has('language_autoload')) {foreach ($config->get('language_autoload') as $value) {$loader->language($value);}}// Library Autoloadif ($config->has('library_autoload')) {foreach ($config->get('library_autoload') as $value) {$loader->library($value);}}// Model Autoloadif ($config->has('model_autoload')) {foreach ($config->get('model_autoload') as $value) {$loader->model($value);}}// Route$route = new Router($registry);// Pre Actionsif ($config->has('action_pre_action')) {foreach ($config->get('action_pre_action') as $value) {$route->addPreAction(new Action($value));}}// Dispatch$route->dispatch(new Action($config->get('action_router')), new Action($config->get('action_error')));// Output$response->output();