Clean up entrypoints
The goal for CMS7 is that there are only the required entrypoints left over, and the path anaylsis distributed throughout the core is minimized.
Thus, the leftover entrypoints are defined as this:
- index.php (eID and TSFE requests)
- typo3/index.php (Routes, AJAX requests, module requests)
- typo3/cli_dispatch.php (calling registered CLI keys)
For all backend parts (typo3/index.php) classes handling the incoming data (requests) and outgoing result (response) are handled by classes built on the PSR-7 interfaces. For CLI keys, a new option to register anonymous functions and custom classes (callables) is given.
The TYPO3 core should still support, but deprecate any other way (custom modules linked to their own entryscrips) for modules etc, in order to achieve the following possibilities in v8:
1. Allow a way to only have index.php in the web folder.
Why? Then we are more secure in terms of what scripts are available to the outside world, we don't need the checks in extensions anymore about if TYPO3_MODE was defined or not.
- We need to find a good way (via composer) to install extensions outside of the doc root.
- We need to find a good way to have resources available in the docroot (puli?).
- We need to get rid of typo3/index.php as well, somehow.
2. Allow a way to make routing use the PATHINFO variable instead of &route=
- This should be doable as soon as v8 only has typo3/index.php as entrypoint.
- Once the new Icon API is used everywhere, and ExtJS is out, references to assets can be set up in a new way then.
3. For the routing, the functionality needs to be extended to allow variables inside the route path (patch is pending) and have the module registration done similarly as registering routes now. This way, the ext_tables.php is almost not needed anymore.