Unused Import

ID

php.unused_import

Severity

low

Remediation Complexity

medium

Remediation Risk

low

Remediation Effort

medium

Resource

Code Smell

Language

Php

Tags

code_smell, unused-code

Description

Reports a use statement whose imported symbol is never referenced anywhere in the file. The check covers plain class imports, aliased imports, grouped imports (use Foo\{A, B};), function imports (use function …​) and constant imports (use const …​).

Rationale

An unused import is dead code in the file header. It suggests a dependency that was removed but whose import survived, misleads readers about what the file actually relies on, and adds churn to code reviews. Because PHP class names are case-insensitive, the imported short name (the alias when present, otherwise the last namespace segment) is matched against references case-insensitively.

<?php

use App\Model\User;     // OK - referenced below
use App\Model\Account;  // FLAW - never referenced

class Service
{
    public function run(): User
    {
        return new User();
    }
}

Remediation

Delete the use statement. If only some symbols of a grouped import are unused, remove just those entries and keep the rest.