Example: Extending Auth
- Auth logic is frequently reused across controllers and middleware
- A macro can encapsulate common checks behind a readable method name
- The result is cleaner, more intentional code at the call site
use Illuminate\Auth\SessionGuard;
use Illuminate\Support\Facades\Auth;
// Before: verbose guard check repeated everywhere
if (Auth::guard('user')->user() && Auth::guard('user')->user()->isAdmin()) {
// ...
}
// Register a macro on SessionGuard
SessionGuard::macro('isAdmin', function () {
return $this->user()?->isAdmin() ?? false;
});
// After: clean and readable
if (Auth::isAdmin()) {
// ...
}← / → navigate · N notes · Esc exit