commit as anonymous
[phorkie.git] / www / www-header.php
1 <?php
2 namespace Phorkie;
3 set_include_path(
4     __DIR__ . '/../src/'
5     . PATH_SEPARATOR . get_include_path()
6 );
7 spl_autoload_register(
8     function ($class) {
9         $file = str_replace(array('\\', '_'), '/', $class) . '.php';
10         $hdl = @fopen($file, 'r', true);
11         if ($hdl !== false) {
12             fclose($hdl);
13             require $file;
14         }
15     }
16 );
17 set_exception_handler(
18     function ($e) {
19         if ($e instanceof Exception) {
20             header('HTTP/1.0 ' . $e->httpStatusCode);
21         } else {
22             header('HTTP/1.0 500 Internal server error');
23         }
24         render('exception', array('exception' => $e));
25         exit();
26     }
27 );
28
29 require_once __DIR__ . '/../data/config.default.php';
30 require_once 'VersionControl/Git.php';
31 require_once 'Twig/Autoloader.php';
32 \Twig_Autoloader::register();
33
34 $loader = new \Twig_Loader_Filesystem($GLOBALS['phorkie']['cfg']['tpl']);
35 $twig = new \Twig_Environment(
36     $loader,
37     array(
38         //'cache' => '/path/to/compilation_cache',
39         'debug' => true
40     )
41 );
42
43 function render($tplname, $vars)
44 {
45     $template = $GLOBALS['twig']->loadTemplate($tplname . '.htm');
46     echo $template->render($vars);
47 }
48 function redirect($target)
49 {
50     header('Location: /' . $target);
51     exit();
52 }
53 ?>