2021-04-25 09:43:24 +00:00
# Auto Import Names
2021-09-16 21:56:43 +00:00
Rector works with all class names as fully qualified by default, so it knows the exact types. In most coding standard, that's not desired behavior, because short version with `use` statement is preferred:
2021-04-25 09:43:24 +00:00
```diff
+use App\Some\Namespace\SomeClass;
2022-02-15 21:06:14 +00:00
-/** @var \App\Some\Namespace\SomeClass $object */
+/** @var SomeClass $object */
-$object = new \App\Some\Namespace\SomeClass();
2021-04-25 09:43:24 +00:00
+$object = new SomeClass();
```
To import FQN like these, configure `rector.php` with:
```php
2022-04-17 06:12:37 +00:00
$rectorConfig->importNames();
2021-04-25 09:43:24 +00:00
```
< br >
Single short classes are imported too:
```diff
+use DateTime;
-$someClass = \DateTime();
+$someClass = DateTime();
```
Do you want to keep those?
```php
2022-10-13 23:39:22 +00:00
$rectorConfig->importShortClasses(false);
2021-04-25 09:43:24 +00:00
```
## How to Remove Unused Imports?
2021-12-11 14:32:07 +00:00
To remove imports, use [ECS ](https://github.com/symplify/easy-coding-standard ) with [`NoUnusedImportsFixer` ](https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/2.18/doc/rules/import/no_unused_imports.rst ) rule:
2021-04-25 09:43:24 +00:00
```php
// ecs.php
use PhpCsFixer\Fixer\Import\NoUnusedImportsFixer;
2022-04-17 19:22:30 +00:00
use Symplify\EasyCodingStandard\Config\ECSConfig;
2021-04-25 09:43:24 +00:00
2022-04-17 19:22:30 +00:00
return static function (ECSConfig $ecsConfig): void {
$ecsConfig->rule(NoUnusedImportsFixer::class);
2021-04-25 09:43:24 +00:00
};
```
Run it:
```bash
vendor/bin/ecs check src --fix
```
2022-04-12 08:58:57 +00:00
< br >
Happy coding!