Performance: Form request classes
Form request classes affect server-side validation and request handling speed, indirectly impacting perceived responsiveness.
<?php // Form request class namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class StoreUserRequest extends FormRequest { public function rules() { return [ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users', ]; } } // Controller method public function store(StoreUserRequest $request) { // validated data available // store logic }
<?php // Controller method with inline validation public function store(Request $request) { $validated = $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users', ]); // store logic }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Inline validation in controller | 0 (server-side only) | 0 | 0 | [OK] |
| Validation via form request class | 0 (server-side only) | 0 | 0 | [OK] Good |
Form Request class in Laravel?make:request.php artisan make:request UserRequest, which is the correct syntax.$request->validated() return if the input is ['name' => 'John', 'age' => 20]?
class UserRequest extends FormRequest {
public function rules() {
return [
'name' => 'required|string',
'age' => 'required|integer|min:18'
];
}
}validated() method returns all input fields that passed validation, so it returns the full input array.class ProductRequest extends FormRequest {
public function rules() {
return [
'price' => 'required|numeric|min:0'
];
}
public function authorize() {
return false;
}
}authorize() method controls if the request is allowed. Returning false denies the request before validation.authorize() returns false, Laravel automatically denies the request, so validation rules are not applied and the request fails authorization.email field but only if it is present, and it must be a valid email format. Which rule should you use in the rules() method?sometimes rule.nullable allows null values and skips subsequent rules if null; present requires the field to exist even if empty; sometimes applies validation only if the field is sent.Pass the test and this pattern moves unknown