Readme: About Maze
Maze is a PHP router that maps HTTP requests to custom entries, such as controllers responsible for handling specific web app logic.
Documentation
The separated documentation repository also has the user-friendly output and contains information about the following key features:
Extendable Routes and Config
For routes and config files, Maze uses Fusion's out-of-the-box extension implementation, allowing dependency packages in the chain to be extended by consumer packages, for example:
- Package2
- Consumes Package1 as a dependency
- Custom app that extends Maze with additional (on-top) files
- Modifies base app files
- Package1
- Consumes Maze as a dependency
- Basic app that extends Maze with initial files
- Maze (Package0)
- Single Point of Truth (SPOT)
- Modular logic without files
The chain can include as many extender packages as your project requires.
Efficient Lookup
Maze does not load all possible routes for a lookup. Cached routes
are organized by request methods (GET
, POST
, PUT
, DELETE
, PATCH
,
OPTIONS
, HEAD
), with each method stored in a separate cached file,
while raw files are checked in top-down extender order, stopping at the
first match.
Contribution
Each merge request serves as confirmation to transfer ownership to the project and must meet the following criteria:
- The code is your own intellectual property.
- Neutral content. Free from political bias, for example.
- Pure PHP without exotic extensions.
See the contributing file if these criteria apply to you.
License
Maze - PHP Router
Copyright © Valvoid
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see licenses.