Performance: Single action controllers
MEDIUM IMPACT
This affects the server response time and how quickly the browser receives the HTML to start rendering.
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ShowUserController extends Controller { public function __invoke($id) { // code for showing a user } }
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { public function index() { // code for listing users } public function show($id) { // code for showing a user } public function store(Request $request) { // code for storing a user } }
| Pattern | Server Processing | Memory Usage | Autoload Time | Verdict |
|---|---|---|---|---|
| Multi-method controller | Higher due to multiple methods | Higher due to larger class | Slower autoload | [X] Bad |
| Single action controller | Lower due to focused method | Lower due to smaller class | Faster autoload | [OK] Good |