X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=app%2Fbootstrap%2Fweb.php;h=12cefeb2f5d3374f5570556a9e6fa1f337fe5f30;hb=d24d1fe1ea41d6da56515c9d302bf91efdfce3af;hp=755bb79acfef14af7d2c119014f4fb8a4a88d260;hpb=4c462ab66e6c65c15df7bd5fe6d2673884c639a0;p=pharext%2Fpharext.org diff --git a/app/bootstrap/web.php b/app/bootstrap/web.php index 755bb79..12cefeb 100644 --- a/app/bootstrap/web.php +++ b/app/bootstrap/web.php @@ -3,75 +3,21 @@ namespace app; require_once __DIR__."/config.php"; +require_once __DIR__."/http.php"; require_once __DIR__."/github.php"; +require_once __DIR__."/router.php"; +require_once __DIR__."/session.php"; use Auryn\Injector; -use FastRoute\DataGenerator; -use FastRoute\Dispatcher; -use FastRoute\RouteCollector; -use FastRoute\RouteParser; - -use http\Env\Request; -use http\Env\Response; - -$injector->share(Request::class); -$injector->share(Response::class); - -$injector->share(RouteCollector::class) - ->prepare(RouteCollector::class, function($routes) use($injector) { - $routes->addRoute("GET", "/reset", function(array $args = null) use($injector) { - $injector->make(Session::class)->reset()->regenerateId(); - $injector->make(Web::class)->redirect($injector->make(BaseUrl::class)); - }); - $routes->addRoute("GET", "/session", function(array $args = null) use($injector) { - $session = $injector->make(Session::class); - $response = $injector->make(Response::class); - if (!(extension_loaded("xdebug") && ini_get("xdebug.overload_var_dump") && ini_get("html_errors"))) { - $response->setContentType("text/plain"); - } - ob_start($response); - var_dump($_SESSION, $session); - }); - $routes->addRoute("GET", "/info", function(array $args = null) { - phpinfo(); - }); - - foreach (parse_ini_file(__DIR__."/../routes.ini", true) as $controller => $definition) { - $factory = function(array $args = null) use($injector, $controller) { - $handler = $injector->make("app\\Controller\\$controller"); - $handler($args); - }; - foreach ($definition as $method => $locations) { - foreach ($locations as $location) { - $routes->addRoute($method, $location, $factory); - } - } - } - }) - ->alias(RouteParser::class, RouteParser\Std::class) - ->alias(DataGenerator::class, DataGenerator\GroupCountBased::class); - -$injector->share(Dispatcher::class) - ->alias(Dispatcher::class, Dispatcher\GroupCountBased::class) - ->delegate(Dispatcher\GroupCountBased::class, function($class, Injector $injector) { - return new $class($injector->make(RouteCollector::class)->getData()); - }); - $injector->prepare(Controller::class, function(Controller $controller, Injector $injector) { if (method_exists($controller, "setSession")) { $controller->setSession($injector->make(Session::class)); } + if (method_exists($controller, "setDatabase")) { + $controller->setDatabase($injector->make(Connection::class)); + } }); -$injector->share(Session::class) - ->prepare(Session::class, function(Session $session, Injector $injector) { - if (isset($session->current) && (!isset($session->previous) || strcmp($session->current, $session->previous))) { - $session->previous = $session->current; - $session->current = $injector->make(Request::class)->getRequestUrl(); - } - $session->current = $injector->make(Request::class)->getRequestUrl(); - }); - $injector->share(BaseUrl::class); $injector->share(Web::class);