[7.x] Tap into Http::get() even better#33315
Merged
Merged
Conversation
…added to the stack
derekmd
reviewed
Jun 24, 2020
| public function withMiddleware(callable $middleware) | ||
| { | ||
| return tap($this, function ($request) use ($middleware) { | ||
| return $this->middleware = collect($this->middleware)->push($middleware); |
Contributor
There was a problem hiding this comment.
return $this->middleware ... wouldn't have any effect for a tap() callback since the return value is ignored.
Either way, this method looks much simpler by skipping tap():
$this->middleware = collect($this->middleware)->push($middleware);
return $this;|
This looks pretty familiar 😬 #32170 |
Member
|
@MrRio sometimes we reconsider prs if there's enough demand for it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Long time no see, friends. 👋
The Laravel HTTP client (accessible through the
Httpfacade) uses an underlying Guzzle Client (and allows to change some of its settings). But Guzzle has a feature called middleware which provides infinite flexibility to add/inspect requests and responses going to or coming from the HTTP client. Why not allow to tap into that?This method allows to wrap additional user-created middleware to that HandlerStack already initiated.
Example: profiling HTTP requests to a profiler like DebugBar or Clockwork
Bonus: it's future proof (Guzzle v7 will be out soon) but middleware will remain the same.
cc @barryvdh @chrisrhymes @driesvints
ref https://twitter.com/chrisrhymes/status/1275378980137426950