Download the PHP package borschphp/router without Composer
On this page you can find all versions of the php package borschphp/router. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package router
Borsch Router
An awesome router implementation with support for multiple routing engines, including `nikic/fast-route`.
Table of Contents
- About The Project
-
Getting Started
- Prerequisites
- Installation
- Usage
- Testing
- Contributing
- License
- Acknowledgments
About The Project
A collection of router implementations, inspired by the one you can find in the excellent Mezzio Routing Interfaces. Among them :
- a router is based on nikic/fast-route
- a router is based on a tree structure
- a router is based on a simple comparator
You need to provide a PSR-7 ServerRequestInterface in order to match the routes.
A PSR-7 ResponseInterface must be returned by the route handler.
(back to top)
Getting Started
Prerequisites
You need PHP >= 8.2
to use Borsch\Router
but the latest stable version of PHP is always recommended.
It also requires an implementation of PSR-7 HTTP Message.
The Laminas Diactoros Project is used for testing, and in the examples below.
Installation
Via composer :
composer require borschphp/router
(back to top)
Usage
Available routers
Router Name | Description | Cache | Speed | Speed with cache | Variables | Optional Parts |
---|---|---|---|---|---|---|
FastRouteRouter |
A nikic/fast-route based router |
✅ | Medium | Fast | ✅ | ✅ |
TreeRouter |
A tree based router | ✅ | Fast | Very fast | ✅ | ❌ |
SimpleConditionalRouter |
A very simple comparator based router | ❌ | Very fast | ❌ | ❌ | ❌ |
(back to top)
Testing
This package uses Pest
as test framework.
To run tests :
Mutation testing has also been added to this package:
(back to top)
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
(back to top)
License
Distributed under the MIT License. See License File for more information.
(back to top)
Acknowledgments
A big thanks to these projects for inspiration or because they're used in this one:
(back to top)
All versions of router with dependencies
psr/http-message Version ^1||^2
psr/http-server-handler Version ^1
psr/http-server-middleware Version ^1
nikic/fast-route Version ^v1.3