mirror of
https://github.com/rectorphp/rector.git
synced 2024-05-31 16:30:51 +00:00
[DX] Deprecate disabling of import options to keep configuration simpler (#1817)
This commit is contained in:
parent
10e8d3e25c
commit
d670c93519
|
@ -3,8 +3,12 @@
|
|||
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:
|
||||
|
||||
```diff
|
||||
-$object = new \App\Some\Namespace\SomeClass();
|
||||
+use App\Some\Namespace\SomeClass;
|
||||
|
||||
-/** @var \App\Some\Namespace\SomeClass $object */
|
||||
+/** @var SomeClass $object */
|
||||
|
||||
-$object = new \App\Some\Namespace\SomeClass();
|
||||
+$object = new SomeClass();
|
||||
```
|
||||
|
||||
|
@ -17,23 +21,6 @@ $parameters->set(Option::AUTO_IMPORT_NAMES, true);
|
|||
|
||||
<br>
|
||||
|
||||
If you enable this feature, the class names in docblocks are imported as well:
|
||||
|
||||
```diff
|
||||
+use App\Some\Namespace\SomeClass;
|
||||
-/** @var \App\Some\Namespace\SomeClass $someClass */
|
||||
+/** @var SomeClass $someClass */
|
||||
$someClass = ...;
|
||||
```
|
||||
|
||||
Do you want to skip them?
|
||||
|
||||
```php
|
||||
$parameters->set(Option::IMPORT_DOC_BLOCKS, false);
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
Single short classes are imported too:
|
||||
|
||||
```diff
|
||||
|
|
|
@ -41,12 +41,12 @@
|
|||
"sebastian/diff": "^4.0.4",
|
||||
"ssch/typo3-rector": "dev-main",
|
||||
"symfony/console": "^6.0",
|
||||
"symfony/contracts": "^2.5|^3.0",
|
||||
"symfony/dependency-injection": "^5.4|^6.0",
|
||||
"symfony/contracts": "^3.0",
|
||||
"symfony/dependency-injection": "^6.0",
|
||||
"symfony/finder": "^6.0",
|
||||
"symfony/process": "^6.0",
|
||||
"symfony/string": "^6.0",
|
||||
"symfony/yaml": "^5.4|^6.0",
|
||||
"symfony/yaml": "^6.0",
|
||||
"symplify/astral": "^10.0.16",
|
||||
"symplify/autowire-array-parameter": "^10.0.16",
|
||||
"symplify/composer-json-manipulator": "^10.0.16",
|
||||
|
@ -141,8 +141,7 @@
|
|||
],
|
||||
"fix-cs": [
|
||||
"vendor/bin/ecs check --fix --ansi",
|
||||
"vendor/bin/ecs check-markdown README.md --fix --ansi",
|
||||
"php bin/clean-phpstan.php"
|
||||
"vendor/bin/ecs check-markdown README.md --fix --ansi"
|
||||
],
|
||||
"phpstan": "vendor/bin/phpstan analyse --ansi --error-format symplify",
|
||||
"phpstan-config": "vendor/bin/phpstan analyse config --ansi --error-format symplify",
|
||||
|
|
|
@ -53,10 +53,6 @@ final class NameImportingPostRector extends AbstractPostRector
|
|||
return $this->processNodeName($node, $file);
|
||||
}
|
||||
|
||||
if (! $this->parameterProvider->provideBoolParameter(Option::IMPORT_DOC_BLOCKS)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node);
|
||||
$this->docBlockNameImporter->importNames($phpDocInfo->getPhpDocNode(), $node);
|
||||
|
||||
|
|
|
@ -228,7 +228,6 @@ parameters:
|
|||
# PHP 7_4 literal syntax
|
||||
- '#Property PhpParser\\Node\\Scalar\\DNumber\:\:\$value \(float\|int\) does not accept string#'
|
||||
|
||||
# mimics original doctrine/annotations parser, improve later when finished
|
||||
-
|
||||
message: '#Array destruct is not allowed\. Use value object to pass data instead#'
|
||||
paths:
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Tests\CodingStyle\Rector\Namespace_\ImportFullyQualifiedNamesRector;
|
||||
|
||||
use Iterator;
|
||||
use Rector\Testing\PHPUnit\AbstractRectorTestCase;
|
||||
use Symplify\SmartFileSystem\SmartFileInfo;
|
||||
|
||||
/**
|
||||
* @see \Rector\PostRector\Rector\NameImportingPostRector
|
||||
*/
|
||||
final class DocBlockRectorTest extends AbstractRectorTestCase
|
||||
{
|
||||
/**
|
||||
* @dataProvider provideData()
|
||||
*/
|
||||
public function test(SmartFileInfo $fileInfo): void
|
||||
{
|
||||
$this->doTestFileInfo($fileInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Iterator<SmartFileInfo>
|
||||
*/
|
||||
public function provideData(): Iterator
|
||||
{
|
||||
return $this->yieldFilesFromDirectory(__DIR__ . '/FixtureDocBlock');
|
||||
}
|
||||
|
||||
public function provideConfigFilePath(): string
|
||||
{
|
||||
return __DIR__ . '/config/import_doc_block_config.php';
|
||||
}
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Tests\CodingStyle\Rector\Namespace_\ImportFullyQualifiedNamesRector\FixtureDocBlock;
|
||||
namespace Rector\Tests\CodingStyle\Rector\Namespace_\ImportFullyQualifiedNamesRector\Fixture;
|
||||
|
||||
class SkipAlreadyClassNameInInlinedVarDoc
|
||||
{
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Tests\CodingStyle\Rector\Namespace_\ImportFullyQualifiedNamesRector\FixtureDocBlock;
|
||||
namespace Rector\Tests\CodingStyle\Rector\Namespace_\ImportFullyQualifiedNamesRector\Fixture;
|
||||
|
||||
class SkipalreadyclassnameinvarDoc
|
||||
{
|
|
@ -1,16 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Rector\Core\Configuration\Option;
|
||||
use Rector\Renaming\Rector\Name\RenameClassRector;
|
||||
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
|
||||
|
||||
return static function (ContainerConfigurator $containerConfigurator): void {
|
||||
$parameters = $containerConfigurator->parameters();
|
||||
$parameters->set(Option::AUTO_IMPORT_NAMES, true);
|
||||
$parameters->set(Option::IMPORT_DOC_BLOCKS, true);
|
||||
|
||||
$services = $containerConfigurator->services();
|
||||
$services->set(RenameClassRector::class);
|
||||
};
|
|
@ -12,7 +12,6 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura
|
|||
return static function (ContainerConfigurator $containerConfigurator): void {
|
||||
$parameters = $containerConfigurator->parameters();
|
||||
$parameters->set(Option::AUTO_IMPORT_NAMES, true);
|
||||
$parameters->set(Option::IMPORT_DOC_BLOCKS, true);
|
||||
$parameters->set(Option::APPLY_AUTO_IMPORT_NAMES_ON_CHANGED_FILES_ONLY, true);
|
||||
|
||||
$services = $containerConfigurator->services();
|
||||
|
|
|
@ -63,6 +63,7 @@ final class Option
|
|||
public const IMPORT_SHORT_CLASSES = 'import_short_classes';
|
||||
|
||||
/**
|
||||
* @deprecated Narrow too complex import settings to more practical use.
|
||||
* @var string
|
||||
*/
|
||||
public const IMPORT_DOC_BLOCKS = 'import_doc_blocks';
|
||||
|
@ -82,12 +83,6 @@ final class Option
|
|||
*/
|
||||
public const PARALLEL = 'parallel';
|
||||
|
||||
/**
|
||||
* @deprecated Cache is enabled by default
|
||||
* @var string
|
||||
*/
|
||||
public const ENABLE_CACHE = 'enable_cache';
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
|
|
|
@ -9,7 +9,6 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura
|
|||
return static function (ContainerConfigurator $containerConfigurator): void {
|
||||
$parameters = $containerConfigurator->parameters();
|
||||
$parameters->set(Option::AUTO_IMPORT_NAMES, true);
|
||||
$parameters->set(Option::IMPORT_DOC_BLOCKS, true);
|
||||
|
||||
$services = $containerConfigurator->services();
|
||||
$services->set(ReplaceSensioRouteAnnotationWithSymfonyRector::class);
|
||||
|
|
Loading…
Reference in New Issue
Block a user