charm / fsrouter-middleware
A router where routes are defined by file system paths.
1.0.3
2022-03-04 12:27 UTC
Requires
- charm/options: ^1.0
- charm/util-composerpath: ^1.0
README
A router implementation which translates a path to a filename in the file system according to a set of rules. Can also be used as a PSR-15 routing middleware.
The string hello/world
is routed to one of the following paths in approximate
order. The target file names index.php
, and default.php
as well as the
extension .php
is configurable.
routes/hello/world/index.php
routes/hello/world/default.php
routes/hello/world.php
routes/_/world/index.php
routes/_/world/default.php
routes/_/world.php
routes/hello/_/index.php
routes/hello/_/default.php
routes/_/_/index.php
routes/_/_/default.php
routes/_/default.php
routes/default.php
NOTE! This ordering is approximated. Is resolved from the root and in, prioritizing entering directories first. When routing fails, it will exit directories looking
Creating a router instance
new FsRouterMiddleware([
'routes_path' => dirname(__DIR__).'/routes'
])