[TASK] Directly wire Application and RequestHandler 42/55642/11
authorBenjamin Franzke <bfr@qbus.de>
Thu, 8 Feb 2018 23:40:18 +0000 (00:40 +0100)
committerSusanne Moog <susanne.moog@typo3.org>
Mon, 12 Feb 2018 20:45:43 +0000 (21:45 +0100)
commit16440346de6ca769a574f11ec0e3697c0971fcda
treeb84edf454611a2deaac4d3ce959dfa6cc9011cc1
parentb6dd5365f8ebff3ce8a1969be3ddd92e9883db22
[TASK] Directly wire Application and RequestHandler

The frontend and backend Application and RequestHandler classes
are tightly coupled since the frontend eID request handler was
moved into a middleware and the backend ajax request handler
was merged with the regular request handler. (1:1 relationship)

There is no (longer) need to resolve the request handler in
Bootstap. For the install application we are still using two
request handlers but will dispatch them from within the
application now.

That means the call chain is now:
 Application -> RequestHandler
instead of:
 Application -> Bootstrap -> RequestHandler

That allows us to deprecate all HTTP related code in Bootstrap (with
a separate commit) and instead implement that in an HTTP specific
ApplicationTrait.

This patch introduces a legacy RequestHandler dispatcher middleware
which ensures that registering custom request handlers using
Bootstrap::registerAdditionalRequestHandler() still works for the
frontend and backend.
(although it is marked @internal, there is interest to not just
drop this)

Change-Id: Id80158bb3d078719f6508ae950b2f32f018e1ac4
Releases: master
Resolves: #83864
Reviewed-on: https://review.typo3.org/55642
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Susanne Moog <susanne.moog@typo3.org>
Tested-by: Susanne Moog <susanne.moog@typo3.org>
typo3/sysext/backend/Classes/Http/Application.php
typo3/sysext/backend/Configuration/RequestMiddlewares.php
typo3/sysext/core/Classes/Console/CommandApplication.php
typo3/sysext/core/Classes/Core/Bootstrap.php
typo3/sysext/core/Classes/Http/AbstractApplication.php [new file with mode: 0644]
typo3/sysext/core/Classes/Middleware/LegacyRequestHandlerDispatcher.php [new file with mode: 0644]
typo3/sysext/frontend/Classes/Http/Application.php
typo3/sysext/frontend/Configuration/RequestMiddlewares.php
typo3/sysext/install/Classes/Http/Application.php