Comments (3)
For the first part of your question (the logging part):
Don't forget that the current URI can be found in $_SERVER['REQUEST_URI']
. Combined with a Before Router Middleware you can log all requests.
Something like this:
$router->before('GET|POST|PUT|DELETE|PATCH|OPTIONS', '.*', function() use ($logger) {
$logger->log($_SERVER['REQUEST_URI']);
}
For the second part of your question (to know which route has been run): I can look into this, or will happily accept a PR that provides this feature.
from router.
Reopening, didn't get into the 2nd part of the question … oops 😊
from router.
I kinda hacked up Bramus slightly to do just this; return the routes that run rather than execute the callback handlers. The run function returns an array of Route objects, which from there you can handle as you need. In my instance, I needed to be able to have each call back class created by my dependency injector (Auryn). I could submit a pr, but I need to change a few things first as I altered the handler method to no longer function as expected.
To get the router to return the routes rather than execute the callbacks, it could set a simple boolean.
$router = new \Bramus\Router\Router();
$router->setReturnRoutes(true);
// Define routes as normal
$matches = $router->run();
$matches would contain the method, pattern and callback of any/all routes that matched, including before middleware. From this point, you could handle as you see fit. If the interest and willingness to add the feature is there, I'll gladly submit the PR.
from router.
Related Issues (20)
- i like it and use in my framework (Flare ) 4.0.1
- $route->set404 = redirect to ?uri= if folder exist HOT 2
- Any HTTP code handling? HOT 3
- Multilingual default route without lang
- Generating URLs HOT 1
- Form submits a GET request without a submit-button HOT 1
- um... controller blank page HOT 1
- how to run php file with command .for example: php index.php Home index HOT 1
- How can i serve the static folder using Router? HOT 1
- $match arrgument not being used anywhere
- after router middleware not keeping states?
- How can I setup this middleware? HOT 1
- router in subfolder HOT 2
- There is no Cache funciton! so Please Add Caching Feature! HOT 1
- 404 error executing more than twice
- No executing middleware HOT 2
- I have uploaded my system that works with this router to the hosting, and it's not functioning. HOT 1
- Post values not coming
- Accessors and named routes
- How to do the following HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from router.