1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | <?php /** * GitPHP * * Index * * @author Christopher Han <xiphux@gmail.com> * @copyright Copyright (c) 2010 Christopher Han * @package GitPHP */ /** * Define start time / memory for benchmarking */ define('GITPHP_START_TIME', microtime(true)); define('GITPHP_START_MEM', memory_get_usage()); /** * Define some paths */ define('GITPHP_BASEDIR', dirname(__FILE__) . '/'); define('GITPHP_CONFIGDIR', GITPHP_BASEDIR . 'config/'); define('GITPHP_INCLUDEDIR', GITPHP_BASEDIR . 'include/'); define('GITPHP_LOCALEDIR', GITPHP_BASEDIR . 'locale/'); define('GITPHP_CACHEDIR', GITPHP_BASEDIR . 'cache/'); define('GITPHP_LIBDIR', GITPHP_BASEDIR . 'lib/'); define('GITPHP_SMARTYDIR', GITPHP_LIBDIR . 'smarty/libs/'); define('GITPHP_GESHIDIR', GITPHP_LIBDIR . 'geshi/'); define('GITPHP_COMPRESS_TAR', 'tar'); define('GITPHP_COMPRESS_BZ2', 'tbz2'); define('GITPHP_COMPRESS_GZ', 'tgz'); define('GITPHP_COMPRESS_ZIP', 'zip'); /** * Low level setup */ if (function_exists('mb_internal_encoding')) { mb_internal_encoding("UTF-8"); } date_default_timezone_set('UTC'); /* strlen() can be overloaded in mbstring extension, so always using mb_orig_strlen for binary data */ if (!function_exists('mb_orig_strlen')) { function mb_orig_strlen($str) { return strlen($str); } } if (!function_exists('mb_orig_substr')) { function mb_orig_substr($str, $offset, $len = null) { return isset($len) ? substr($str, $offset, $len) : substr($str, $offset); } } /** * Version header */ include(GITPHP_INCLUDEDIR . 'version.php'); /** * Autoload setup */ require(GITPHP_INCLUDEDIR . 'AutoLoader.class.php'); spl_autoload_register(array('GitPHP_AutoLoader', 'AutoLoad')); $router = new GitPHP_Router(); try { $controller = $router->GetController(); if ($controller) { $controller->Initialize(); $controller->RenderHeaders(); $controller->Render(); } } catch (Exception $e) { $messageController = $router->GetMessageController(); $messageController->Initialize(); if (!($e instanceof GitPHP_MessageException)) { $config = $messageController->GetConfig(); if ($config && $config->GetValue('debug')) { throw $e; } } $messageController->SetParam('exception', $e); $messageController->RenderHeaders(); $messageController->Render(); unset($messageController); } unset($router); ?> |