Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Explanation
Extended the Router class adds new functionalities while keeping the global performance impact (very) low. Modified files to allow this new feature: Router.php, Controller.php Bootstrap.php and CLBootstrap.php.
This new method uses half compiled URLs. Replacement of the regex is done wisely using str_replace avoiding innecessary loops that would add up time.
For all loops, do_while is being used to shave off some time. (Note: I offer myself to rewrite most loops to do whiles to gain performance.)
It keeps 100% compatibility with the current URL set up, translating URLs and using controllers as domains and even using translations in domain set up. Putting it simple, it is backwards compatible.
Example
Usage of the new routing system in router.config.php
Required new config file: router_regex.config.php allowing different regex. Here's the default set I've come up with.