1: <?php
2: /**
3: * CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
4: * Copyright 2005-2011, Cake Software Foundation, Inc. (https://cakefoundation.org)
5: *
6: * Licensed under The MIT License
7: * Redistributions of files must retain the above copyright notice.
8: *
9: * @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
10: * @link https://cakephp.org CakePHP(tm) Project
11: * @since 3.5.0
12: * @license https://opensource.org/licenses/mit-license.php MIT License
13: */
14: namespace Cake\Core;
15:
16: use Psr\Http\Message\ResponseInterface;
17: use Psr\Http\Message\ServerRequestInterface;
18:
19: /**
20: * An interface defining the methods that the
21: * http server depend on.
22: */
23: interface HttpApplicationInterface
24: {
25: /**
26: * Load all the application configuration and bootstrap logic.
27: *
28: * Override this method to add additional bootstrap logic for your application.
29: *
30: * @return void
31: */
32: public function bootstrap();
33:
34: /**
35: * Define the routes for an application.
36: *
37: * Use the provided RouteBuilder to define an application's routing.
38: *
39: * @param \Cake\Routing\RouteBuilder $routes A route builder to add routes into.
40: * @return void
41: */
42: public function routes($routes);
43:
44: /**
45: * Define the HTTP middleware layers for an application.
46: *
47: * @param \Cake\Http\MiddlewareQueue $middleware The middleware queue to set in your App Class
48: * @return \Cake\Http\MiddlewareQueue
49: */
50: public function middleware($middleware);
51:
52: /**
53: * Invoke the application.
54: *
55: * @param \Psr\Http\Message\ServerRequestInterface $request The request
56: * @param \Psr\Http\Message\ResponseInterface $response The response
57: * @param callable $next The next middleware
58: * @return \Psr\Http\Message\ResponseInterface
59: */
60: public function __invoke(ServerRequestInterface $request, ResponseInterface $response, $next);
61: }
62: