-
-
Notifications
You must be signed in to change notification settings - Fork 88
Comments
Conversation
enumag
commented
Aug 9, 2015
Can you show an example of a test where you need this? I never needed anything like it, instead it would be really benefitial for my tests if Request would not be a service (and Response as well for that matter).
Also I certainly wouldn't like this method in the IRequest interface.
fprochazka
commented
Aug 9, 2015
@JanTvrdik I like the idea, doing this every time is tedious.
JanTvrdik
commented
Aug 9, 2015
instead it would be really benefitial for my tests if Request would not be a service
Feel free to join the relevant discussion.
Can you show an example of a test where you need this?
Sorry, I have a really bad memory. I found the code I have written (6 days ago) and the withUrl method would not help in that case. The reason why I brought it up today is because I was creating a draft for a router where the method would be helpful.
class DevRouter implements Application\IRouter { // *.signaly.cz -> *.signaly.l // *.signaly.cz -> localhost/signaly/www/* public function __construct($fromMask, $toMask, Application\IRouter $innerRouter) { $this->fromMask = $fromMask; $this->toMask = $toMask; $this->innerRouter = $innerRouter; } public function match(Nette\Http\IRequest $httpRequest) { $fixedUrl = $this->transformIn($httpRequest->url); $fixedHttpRequest = $httpRequest->withUrl($fixedUrl); // <-- THIS IS THE LINE return $this->innerRouter->match($fixedHttpRequest); } public function constructUrl(Request $appRequest, Nette\Http\Url $refUrl) { $url = $this->innerRouter->constructUrl($appRequest, $refUrl); $fixedUrl = $this->transformOut($url); return $fixedUrl; } }
enumag
commented
Aug 9, 2015
In my opinion you should just write a static helper method cloneRequestWithUrl($request, $url) outside of this class.
1dc599c to
f35d20f
Compare
7981e33 to
3fb64f5
Compare
b9f06ea to
4f6d6c9
Compare
2ff2f22 to
40175d7
Compare
b031216 to
9979093
Compare
55488bd to
2042d2e
Compare
4960652 to
5e67add
Compare
689f4ae to
33aae19
Compare
09923de to
02ae846
Compare
dc02250 to
80e8e2b
Compare
It's often useful (e.g. in tests) to modify URL inside httpRequest. Doing this is really annoying because Request has lot of constructor parameters. The naming (
with*) is based on PSR-7.What do you think about this idea? Tests are currently missing.