📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials CodeIgniter 4 Filters (Middleware) CI4

Filters (Middleware) CI4

5 min read Quiz at the end
Create CI4 Filters (middleware) to authenticate, throttle, or transform requests before controllers.

Filters in CI4

// app/Filters/AuthFilter.php
namespace AppFilters;
use CodeIgniterFiltersFilterInterface;

class AuthFilter implements FilterInterface {
    public function before(RequestInterface $request, $arguments = null) {
        if (!session()->get("logged_in")) {
            return redirect()->to("/login");
        }
    }

    public function after(RequestInterface $request, ResponseInterface $response, $arguments = null) {
        // post-processing
    }
}

// Register in app/Config/Filters.php
public array $aliases = [
    "auth"  => AppFiltersAuthFilter::class,
    "admin" => AppFiltersAdminFilter::class,
];

// Apply to routes
$routes->group("admin", ["filter" => "auth:admin"], function($r) {
    $r->get("/", "AdminDashboard::index");
});

// Apply globally
public array $globals = [
    "before" => ["honeypot", "csrf"],
    "after"  => ["secureheaders"],
];
Topic Quiz · 2 questions

Test your understanding before moving on

1. What is the CI4 equivalent of Laravel middleware?
💡 CI4 uses Filters (implementing FilterInterface) instead of middleware.
2. Where do you register CI4 filters?
💡 Filters are registered in app/Config/Filters.php with aliases.