---
title: Do Not Use Unused Classes or Namespaces
impact: LOW
impactDescription: reduces codebase noise and improves clarity
tags: imports, use-statements, cleanup, quality, php
---

## Do Not Use Unused Classes or Namespaces

Unused `use` statements (imports) add unnecessary noise to the code, making it harder for developers to see which dependencies are actually required.

**Incorrect (unused imports):**

```php
namespace App\Services;

use App\Models\User;
use App\Models\Order;
use App\Models\Product;
use App\Models\Category;
use Illuminate\Support\Str;
use Carbon\Carbon;

class UserService
{
    // Only User is actually used in this class
    public function findUser($id)
    {
        return User::find($id);
    }
}
```

**Correct (only needed imports):**

```php
namespace App\Services;

use App\Models\User;

class UserService
{
    public function findUser($id)
    {
        return User::find($id);
    }
}
```

**Why remove unused imports?**
- **Readability**: Quickly understand a file's dependencies.
- **Maintenance**: Avoid confusion when refactoring or deleting classes.
- **IDE Performance**: Slightly faster indexing and better suggestions.

**Tools:** PHPStorm (Optimize Imports), PHP_CodeSniffer (`SlevomatCodingStandard.Namespaces.UnusedUses`), PHPStan, Psalm
