stela/index.php

88 lines
1.8 KiB
PHP
Raw Normal View History

2020-01-23 12:10:33 +00:00
<?php
// see app.php for application logic
// AUTOLOADING
spl_autoload_register(function ($class){
require __DIR__ . '/lib/' . str_replace('\\', '/', $class) . '.php';
});
// ERRORS
require __DIR__ . '/lib/tracy.php';
use \Tracy\Debugger;
Debugger::enable(!empty($config['show_debug']) ? Debugger::DEVELOPMENT : Debugger::DETECT);
Debugger::$showBar = false;
Debugger::$errorTemplate = __DIR__ . '/tpl/500.htm';
// ROUTES DEFINITION
$routeCollector = new FastRoute\RouteCollector(new FastRoute\RouteParser\Std(), new FastRoute\DataGenerator\GroupCountBased());
// user
// requireLogin
function di($service)
{
// stub
}
function flash($msg)
{
// stub
}
function redirect($url, $status = 302)
{
// stub
}
function render($view, $data)
{
// stub
}
function response($body, $status=200, $headers=[])
{
}
function notFound()
{
// ?
}
function route($method, $url, $callback)
{
global $routeCollector;
if (empty($method)) $method = ['GET', 'POST'];
$routeCollector->addRoute($method, $url, $callback);
}
require 'app.php';
// finally running the APP
$routeDispatcher = new FastRoute\Dispatcher\GroupCountBased($routeCollector->getData());
$request = new Nyholm\Psr7\Request($_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI']);
$routeInfo = $routeDispatcher->dispatch($request->getMethod(), $request->getUri());
dump($routeInfo);
switch ($routeInfo[0]) {
case FastRoute\Dispatcher::NOT_FOUND:
// ... 404 Not Found
break;
case FastRoute\Dispatcher::METHOD_NOT_ALLOWED:
$allowedMethods = $routeInfo[1];
// ... 405 Method Not Allowed
break;
case FastRoute\Dispatcher::FOUND:
$handler = $routeInfo[1];
$vars = $routeInfo[2];
// ... call $handler with $vars
$handler($request, $vars);
break;
}
echo 'FIN';