Context: We currently have no reliable way to keep the behavior of different entry points consistent. Most rely on static methods in the MediaWiki class for cleanup, but otherwise, each web entry points re-implements the request handling life-cycle.
Rationale: introducing a base class for web entry points would allow us to handle things like headers and output buffers consistently. It would also ensure that we can test entry point code using phpunit. This is analogous to the Maintenance base class for command line scripts.
Survey of entry points:
- index.php
- api.php
- rest.php
- load.php
- img_auth.php
- thumb.php
- thumb_handler.php
- opensearch_desc.php
Note that extensions should not introduce their own web entry points.