/** * Boot up the application * */ public function run() { $container = new \League\Container\Container(); require "TestMiddleware.php"; $dispatcher = new Dispatcher([function (ServerRequestInterface $request, callable $next) { $response = $next($request); // delegate control to next middleware $response->getBody()->write("this is test middleware"); return $response; }, \Psr7Middlewares\Middleware\BasicAuthentication::class, function (ServerRequestInterface $request) { // Retrieve the route $route = $this->getRoute($this->path); /* Check if controller class extends the core controller */ if ($route['controller']['class'] == 'Leap\\Core\\Controller' || is_subclass_of($route['controller']['class'], "Leap\\Core\\Controller")) { /* Create the controller instance */ $this->controller = new $route['controller']['class']($this->request, $this->response, $route, $this->hooks, $this->plugin_manager, $this->pdo); } else { if (class_exists($route['controller']['class'])) { printr("Controller class '" . $route['controller']['class'] . "' does not extend the base 'Leap\\Core\\Controller' class", true); } else { printr("Controller class '" . $route['controller']['class'] . "' not found", true); } } if (!$this->controller->access) { $this->response = $this->response->withStatus(403); $this->path = "permission-denied"; //return $runFunction($request, $this->response, $done); } else { /* Call the action from the Controller class */ if (method_exists($this->controller, $route['action'])) { $this->controller->{$route['action']}(); } else { $this->controller->defaultAction(); } /* Render the templates */ $this->controller->render(); } return $this->response; }], new ContainerResolver($container)); $response = $dispatcher->dispatch($this->request); (new SapiStreamEmitter())->emit($response); }
<?php use mindplay\middleman\Dispatcher; use mindplay\middleman\InteropResolver; require '../vendor/autoload.php'; // Get ServerRequestInterface object. $request = Zend\Diactoros\ServerRequestFactory::fromGlobals(); // Boot application. /* @var Interop\Container\ContainerInterface $container */ $container = (require 'container.php'); $router = (require 'router.php'); $middlewares = [Psr7Middlewares\Middleware\BasicAuthentication::class, $router]; $dispatcher = new Dispatcher($middlewares, new InteropResolver($container)); // Let application do the magic. $response = $dispatcher->dispatch($request, new Zend\Diactoros\Response()); // Output Response. (new Zend\Diactoros\Response\SapiEmitter())->emit($response);