public static function setUpBeforeClass() { // Load configuration $config = (require __DIR__ . '/../config/config.php'); // Override config settings $config['debug'] = true; $config['config_cache_enabled'] = false; $dependencies = $config['dependencies']; $dependencies['services']['config'] = $config; // Build container self::$container = new ServiceManager($dependencies); // Get application from container self::$app = self::$container->get(Application::class); self::$app->raiseThrowables(); // Setup middleware self::$app->pipe(ServerUrlMiddleware::class); self::$app->pipe(ErrorHandler::class); self::$app->pipe(SessionMiddleware::class); self::$app->pipeRoutingMiddleware(); self::$app->pipe(UrlHelperMiddleware::class); self::$app->pipeDispatchMiddleware(); self::$app->pipe(NotFoundHandler::class); // Setup routes self::$app->route('/', Action\HomePageAction::class, ['GET'], 'home'); self::$app->route('/blog', Action\BlogIndexAction::class, ['GET'], 'blog'); self::$app->route('/blog/feed.xml', Action\BlogXmlFeedAction::class, ['GET'], 'feed'); self::$app->route('/blog/{id:[0-9a-zA-Z\\-]+}', Action\BlogPostAction::class, ['GET'], 'blog.post'); self::$app->route('/code', Action\CodeAction::class, ['GET'], 'code'); self::$app->route('/contact', Action\ContactAction::class, ['GET', 'POST'], 'contact'); }