mirror of
https://github.com/rectorphp/rector.git
synced 2024-06-01 08:50:50 +00:00
[static] replace string attirbutes with contants + fix require rule (#4354)
* replace string attirbutes with contants * static fixes * composer: bump sypmlify * composer: drop branch alias, not usedp
This commit is contained in:
parent
635e0292c2
commit
7e124dffc0
|
@ -31,13 +31,13 @@
|
|||
"symfony/dependency-injection": "^4.4.8|^5.1",
|
||||
"symfony/finder": "^4.4.8|^5.1",
|
||||
"symfony/process": "^4.4.8|^5.1",
|
||||
"symplify/autowire-array-parameter": "^8.3.26",
|
||||
"symplify/console-color-diff": "^8.3.26",
|
||||
"symplify/easy-testing": "^8.3.26",
|
||||
"symplify/composer-json-manipulator": "^8.3.26",
|
||||
"symplify/package-builder": "^8.3.26",
|
||||
"symplify/set-config-resolver": "^8.3.26",
|
||||
"symplify/smart-file-system": "^8.3.26",
|
||||
"symplify/autowire-array-parameter": "^8.3.29",
|
||||
"symplify/console-color-diff": "^8.3.29",
|
||||
"symplify/easy-testing": "^8.3.29",
|
||||
"symplify/composer-json-manipulator": "^8.3.29",
|
||||
"symplify/package-builder": "^8.3.29",
|
||||
"symplify/set-config-resolver": "^8.3.29",
|
||||
"symplify/smart-file-system": "^8.3.29",
|
||||
"webmozart/assert": "^1.8"
|
||||
},
|
||||
"require-dev": {
|
||||
|
@ -50,11 +50,11 @@
|
|||
"php-parallel-lint/php-parallel-lint": "^1.2",
|
||||
"phpunit/phpunit": "^8.5|^9.2",
|
||||
"psr/event-dispatcher": "^1.0",
|
||||
"symplify/changelog-linker": "^8.3.26",
|
||||
"symplify/easy-coding-standard": "^8.3.26",
|
||||
"symplify/easy-testing": "^8.3.26",
|
||||
"symplify/monorepo-builder": "^8.3.26",
|
||||
"symplify/phpstan-extensions": "^8.3.26",
|
||||
"symplify/changelog-linker": "^8.3.29",
|
||||
"symplify/easy-coding-standard": "^8.3.29",
|
||||
"symplify/easy-testing": "^8.3.29",
|
||||
"symplify/monorepo-builder": "^8.3.29",
|
||||
"symplify/phpstan-extensions": "^8.3.29",
|
||||
"tracy/tracy": "^2.7",
|
||||
"thecodingmachine/phpstan-strict-rules": "^0.12"
|
||||
},
|
||||
|
@ -312,10 +312,5 @@
|
|||
},
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "0.8-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,8 +14,8 @@ use PhpParser\ParserFactory;
|
|||
use Rector\Core\Configuration\MinimalVersionChecker;
|
||||
use Rector\Core\Console\Application;
|
||||
use Rector\Core\EventDispatcher\AutowiredEventDispatcher;
|
||||
use Rector\Core\PhpParser\Parser\LexerFactory;
|
||||
use Rector\Core\PhpParser\Parser\NikicPhpParserFactory;
|
||||
use Rector\Core\PhpParser\Parser\PhpParserLexerFactory;
|
||||
use Symfony\Component\Console\Application as SymfonyApplication;
|
||||
use Symfony\Component\Console\Descriptor\TextDescriptor;
|
||||
use Symfony\Component\Console\Style\SymfonyStyle;
|
||||
|
@ -73,7 +73,7 @@ return static function (ContainerConfigurator $containerConfigurator): void {
|
|||
->factory([ref(NikicPhpParserFactory::class), 'create']);
|
||||
|
||||
$services->set(Lexer::class)
|
||||
->factory([ref(LexerFactory::class), 'create']);
|
||||
->factory([ref(PhpParserLexerFactory::class), 'create']);
|
||||
|
||||
$services->set(Filesystem::class);
|
||||
$services->set(PrivatesAccessor::class);
|
||||
|
|
|
@ -10,6 +10,7 @@ use PhpParser\Node\Expr\FuncCall;
|
|||
use PhpParser\Node\Name;
|
||||
use PhpParser\Node\Name\FullyQualified;
|
||||
use Rector\NodeNameResolver\Contract\NodeNameResolverInterface;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
|
||||
final class FuncCallNameResolver implements NodeNameResolverInterface
|
||||
{
|
||||
|
@ -35,7 +36,7 @@ final class FuncCallNameResolver implements NodeNameResolverInterface
|
|||
return (string) $functionName;
|
||||
}
|
||||
|
||||
$namespaceName = $functionName->getAttribute('namespacedName');
|
||||
$namespaceName = $functionName->getAttribute(AttributeKey::NAMESPACED_NAME);
|
||||
if ($namespaceName instanceof FullyQualified) {
|
||||
$functionFqnName = $namespaceName->toString();
|
||||
if (function_exists($functionFqnName)) {
|
||||
|
|
|
@ -143,6 +143,14 @@ final class AttributeKey
|
|||
*/
|
||||
public const FILE_INFO = SmartFileInfo::class;
|
||||
|
||||
/**
|
||||
* Internal php-parser name.
|
||||
* Do not change this even if you want!
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public const NAMESPACED_NAME = 'namespacedName';
|
||||
|
||||
/**
|
||||
* Internal php-parser name.
|
||||
* Do not change this even if you want!
|
||||
|
|
60
phpstan.neon
60
phpstan.neon
|
@ -519,11 +519,6 @@ parameters:
|
|||
paths:
|
||||
- src/FileSystem/FilesFinder.php
|
||||
|
||||
# @todo fix in symplify
|
||||
#-
|
||||
# message: '#Method call argument on position 0 must use constant over value#'
|
||||
# path: 'src/Rector/AbstractRector.php'
|
||||
|
||||
- '#Method Rector\\DocumentationGenerator\\Tests\\Printer\\RectorsDocumentationPrinter\\RectorsDocumentationPrinterTest\:\:createRectorsFromRectorClasses\(\) should return array<Rector\\Core\\Contract\\Rector\\RectorInterface\> but returns array<int, object\>#'
|
||||
|
||||
- '#Parameter \#1 \$rectors of method Rector\\DocumentationGenerator\\Printer\\RectorsDocumentationPrinter\:\:print\(\) expects array<Rector\\Core\\Contract\\Rector\\RectorInterface\>, array<object\> given#'
|
||||
|
@ -723,58 +718,3 @@ parameters:
|
|||
|
||||
# intersection bug
|
||||
- '#Parameter \#1 \$phpDocTagValueNode of method Rector\\BetterPhpDocParser\\PhpDocInfo\\PhpDocInfo\:\:removeTagValueNodeFromNode\(\) expects PHPStan\\PhpDocParser\\Ast\\PhpDoc\\PhpDocTagValueNode, Rector\\PhpAttribute\\Contract\\PhpAttributableTagNodeInterface given#'
|
||||
|
||||
|
||||
-
|
||||
message: '#Method call argument on position 0 must use constant over value#'
|
||||
paths:
|
||||
- packages/node-name-resolver/src/NodeNameResolver/FuncCallNameResolver.php # 38
|
||||
- packages/node-name-resolver/src/NodeNameResolver/FuncCallNameResolver.php # 38
|
||||
- rules/legacy/src/Rector/Include_/RemoveIncludeRector.php # 56
|
||||
- rules/legacy/src/Rector/Include_/RemoveIncludeRector.php # 56
|
||||
- rules/php73/src/Rector/String_/SensitiveHereNowDocRector.php # 64
|
||||
- rules/php73/src/Rector/String_/SensitiveHereNowDocRector.php # 64
|
||||
- rules/php73/src/Rector/String_/SensitiveHereNowDocRector.php # 70
|
||||
- rules/php73/src/Rector/String_/SensitiveHereNowDocRector.php # 70
|
||||
- rules/symfony/src/Rector/ClassMethod/AutoWireWithClassNameSuffixForMethodWithRequiredAnnotationRector.php # 75
|
||||
- rules/symfony/src/Rector/ClassMethod/AutoWireWithClassNameSuffixForMethodWithRequiredAnnotationRector.php # 75
|
||||
|
||||
-
|
||||
message: '#Method with @required need to be named autowire\+class name#'
|
||||
paths:
|
||||
- packages/changes-reporting/src/Rector/AbstractRector/NotifyingRemovingNodeTrait.php # 27
|
||||
- packages/changes-reporting/src/Rector/AbstractRector/NotifyingRemovingNodeTrait.php # 27
|
||||
- packages/post-rector/src/Rector/AbstractRector/NodeCommandersTrait.php # 71
|
||||
- packages/post-rector/src/Rector/AbstractRector/NodeCommandersTrait.php # 71
|
||||
- packages/reporting/src/Rector/AbstractRector/NodeReportCollectorTrait.php # 24
|
||||
- packages/reporting/src/Rector/AbstractRector/NodeReportCollectorTrait.php # 24
|
||||
- rules/doctrine/src/AbstractRector/DoctrineTrait.php # 23
|
||||
- rules/doctrine/src/AbstractRector/DoctrineTrait.php # 23
|
||||
- rules/doctrine/src/AbstractRector/DoctrineTrait.php # 23
|
||||
- src/Rector/AbstractRector/BetterStandardPrinterTrait.php # 37
|
||||
- src/Rector/AbstractRector/BetterStandardPrinterTrait.php # 37
|
||||
- src/Rector/AbstractRector/CallableNodeTraverserTrait.php # 24
|
||||
- src/Rector/AbstractRector/CallableNodeTraverserTrait.php # 24
|
||||
- src/Rector/AbstractRector/ComplexRemovalTrait.php # 59
|
||||
- src/Rector/AbstractRector/ComplexRemovalTrait.php # 59
|
||||
- src/Rector/AbstractRector/ConstFetchAnalyzerTrait.php # 24
|
||||
- src/Rector/AbstractRector/ConstFetchAnalyzerTrait.php # 24
|
||||
- src/Rector/AbstractRector/NameResolverTrait.php # 38
|
||||
- src/Rector/AbstractRector/NameResolverTrait.php # 38
|
||||
- src/Rector/AbstractRector/NameResolverTrait.php # 38
|
||||
- src/Rector/AbstractRector/NodeCollectorTrait.php # 23
|
||||
- src/Rector/AbstractRector/NodeCollectorTrait.php # 23
|
||||
- src/Rector/AbstractRector/NodeFactoryTrait.php # 38
|
||||
- src/Rector/AbstractRector/NodeFactoryTrait.php # 38
|
||||
- src/Rector/AbstractRector/NodeTypeResolverTrait.php # 59
|
||||
- src/Rector/AbstractRector/NodeTypeResolverTrait.php # 59
|
||||
- src/Rector/AbstractRector/PhpDocTrait.php # 39
|
||||
- src/Rector/AbstractRector/PhpDocTrait.php # 39
|
||||
- src/Rector/AbstractRector/RemovedAndAddedFilesTrait.php # 29
|
||||
- src/Rector/AbstractRector/RemovedAndAddedFilesTrait.php # 29
|
||||
- src/Rector/AbstractRector/ValueResolverTrait.php # 24
|
||||
- src/Rector/AbstractRector/ValueResolverTrait.php # 24
|
||||
- src/Rector/AbstractRector/VisibilityTrait.php # 29
|
||||
- src/Rector/AbstractRector/VisibilityTrait.php # 29
|
||||
|
||||
- '#Class with base "LexerFactory" name is already used in "PHPStan\\Parser\\LexerFactory", "Rector\\Core\\PhpParser\\Parser\\LexerFactory"\. Use unique name to make classes easy to recognize#'
|
||||
|
|
|
@ -53,7 +53,7 @@ CODE_SAMPLE
|
|||
$nop = new Nop();
|
||||
$comments = $node->getAttribute(AttributeKey::COMMENTS);
|
||||
if ($comments) {
|
||||
$nop->setAttribute('comments', $comments);
|
||||
$nop->setAttribute(AttributeKey::COMMENTS, $comments);
|
||||
$this->addNodeAfterNode($nop, $node);
|
||||
}
|
||||
$this->removeNode($node);
|
||||
|
|
|
@ -23,6 +23,11 @@ final class SensitiveHereNowDocRector extends AbstractRector
|
|||
*/
|
||||
private const WRAP_SUFFIX = '_WRAP';
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private const ATTRIBUTE_DOC_LABEL = 'docLabel';
|
||||
|
||||
public function getDefinition(): RectorDefinition
|
||||
{
|
||||
return new RectorDefinition('Changes heredoc/nowdoc that contains closing word to safe wrapper name', [
|
||||
|
@ -61,13 +66,13 @@ CODE_SAMPLE
|
|||
|
||||
// the doc label is not in the string → ok
|
||||
/** @var string $docLabel */
|
||||
$docLabel = $node->getAttribute('docLabel');
|
||||
$docLabel = $node->getAttribute(self::ATTRIBUTE_DOC_LABEL);
|
||||
|
||||
if (! Strings::contains($node->value, $docLabel)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$node->setAttribute('docLabel', $this->uniquateDocLabel($node->value, $docLabel));
|
||||
$node->setAttribute(self::ATTRIBUTE_DOC_LABEL, $this->uniquateDocLabel($node->value, $docLabel));
|
||||
|
||||
// invoke redraw
|
||||
$node->setAttribute(AttributeKey::ORIGINAL_NODE, null);
|
||||
|
|
|
@ -11,6 +11,7 @@ use PhpParser\Node\Stmt\ClassMethod;
|
|||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\Core\RectorDefinition\CodeSample;
|
||||
use Rector\Core\RectorDefinition\RectorDefinition;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
|
||||
/**
|
||||
* @see \Rector\Symfony\Tests\Rector\ClassMethod\AutoWireWithClassNameSuffixForMethodWithRequiredAnnotationRector\AutoWireWithClassNameSuffixForMethodWithRequiredAnnotationRectorTest
|
||||
|
@ -72,11 +73,12 @@ CODE_SAMPLE
|
|||
return null;
|
||||
}
|
||||
|
||||
$class = $node->getAttribute('parent');
|
||||
/** @var Identifier $name */
|
||||
$name = $class->name;
|
||||
$className = $name->toString();
|
||||
$expectedMethodName = 'autowire' . $className;
|
||||
$classShortName = $node->getAttribute(AttributeKey::CLASS_SHORT_NAME);
|
||||
if ($classShortName === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$expectedMethodName = 'autowire' . $classShortName;
|
||||
|
||||
if ((string) $node->name === $expectedMethodName) {
|
||||
return null;
|
||||
|
|
|
@ -11,7 +11,7 @@ use PhpParser\Lexer\Emulative;
|
|||
* This Lexer allows Format-perserving AST Transformations.
|
||||
* @see https://github.com/nikic/PHP-Parser/issues/344#issuecomment-298162516
|
||||
*/
|
||||
final class LexerFactory
|
||||
final class PhpParserLexerFactory
|
||||
{
|
||||
public function create(): Lexer
|
||||
{
|
Loading…
Reference in New Issue
Block a user