Performance: Accessing request data
This concept affects how quickly the server processes incoming HTTP requests and how efficiently data is retrieved from those requests.
$name = request()->input('name');
$name = request()->all()['name'];| Pattern | Data Access | Memory Usage | Processing Time | Verdict |
|---|---|---|---|---|
| request()->all()['key'] | Loads entire input array | High | Slower | [X] Bad |
| request()->input('key') | Loads single input key | Low | Faster | [OK] Good |
| request()->query() | Loads entire query array | High | Slower | [X] Bad |
| request()->query('key') | Loads single query key | Low | Faster | [OK] Good |
input() method retrieves input data from the request regardless of HTTP method (GET, POST, etc.).post() only retrieves POST data, all() returns all input data, and data() does not exist.query() method to specifically get data from URL query parameters (GET data).post() gets POST data, route() gets route parameters, request() is not a retrieval method./search?term=laravel and the form sends a POST field term=php?
public function search(Request $request) {
return $request->input('term');
}input() method returns POST data first if available, then falls back to query parameters.term=php exists, so input('term') returns 'php' ignoring the query parameter.public function store(Request $request) {
$email = $request->postEmail();
return $email;
}postEmail(). This causes a runtime error.$request->post('email') or $request->input('email').input() to access nested data safely with a default value.get() but unsafe array access if 'user' missing, C uses query() which only reads URL params, D uses input('user') which may be null leading to array access error.Pass the test and this pattern moves unknown