Updated Rector to commit 079b20c894

079b20c894 [PHP 7.4] Skip dependency on native ReflectionProperty->getType() (#1409)
This commit is contained in:
Tomas Votruba 2021-12-06 19:42:49 +00:00
parent d33418d841
commit 8eada0bd4b
47 changed files with 1166 additions and 1276 deletions

View File

@ -1,14 +0,0 @@
<?php
declare (strict_types=1);
namespace RectorPrefix20211206;
use Rector\Carbon\Rector\MethodCall\ChangeCarbonSingularMethodCallToPluralRector;
use Rector\Carbon\Rector\MethodCall\ChangeDiffForHumansArgsRector;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
# source: https://carbon.nesbot.com/docs/#api-carbon-2
return static function (\Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator $containerConfigurator) : void {
$services = $containerConfigurator->services();
$services->set(\Rector\Carbon\Rector\MethodCall\ChangeDiffForHumansArgsRector::class);
$services->set(\Rector\Carbon\Rector\MethodCall\ChangeCarbonSingularMethodCallToPluralRector::class);
};

View File

@ -15,6 +15,7 @@ use Rector\DowngradePhp74\Rector\FuncCall\DowngradeStripTagsCallWithArrayRector;
use Rector\DowngradePhp74\Rector\Identical\DowngradeFreadFwriteFalsyToNegationRector;
use Rector\DowngradePhp74\Rector\Interface_\DowngradePreviouslyImplementedInterfaceRector;
use Rector\DowngradePhp74\Rector\LNumber\DowngradeNumericLiteralSeparatorRector;
use Rector\DowngradePhp74\Rector\MethodCall\DowngradeReflectionGetTypeRector;
use Rector\DowngradePhp74\Rector\Property\DowngradeTypedPropertyRector;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (\Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator $containerConfigurator) : void {
@ -32,4 +33,5 @@ return static function (\Symfony\Component\DependencyInjection\Loader\Configurat
$services->set(\Rector\DowngradePhp74\Rector\FuncCall\DowngradeArrayMergeCallWithoutArgumentsRector::class);
$services->set(\Rector\DowngradePhp74\Rector\Identical\DowngradeFreadFwriteFalsyToNegationRector::class);
$services->set(\Rector\DowngradePhp74\Rector\Interface_\DowngradePreviouslyImplementedInterfaceRector::class);
$services->set(\Rector\DowngradePhp74\Rector\MethodCall\DowngradeReflectionGetTypeRector::class);
};

View File

@ -8,8 +8,6 @@
- [Autodiscovery](#autodiscovery) (4)
- [Carbon](#carbon) (2)
- [CodeQuality](#codequality) (70)
- [CodingStyle](#codingstyle) (35)
@ -38,9 +36,9 @@
- [DowngradePhp73](#downgradephp73) (6)
- [DowngradePhp74](#downgradephp74) (11)
- [DowngradePhp74](#downgradephp74) (12)
- [DowngradePhp80](#downgradephp80) (20)
- [DowngradePhp80](#downgradephp80) (21)
- [DowngradePhp81](#downgradephp81) (8)
@ -397,53 +395,6 @@ return static function (ContainerConfigurator $containerConfigurator): void {
<br>
## Carbon
### ChangeCarbonSingularMethodCallToPluralRector
Change setter methods with args to their plural names on `Carbon\Carbon`
- class: [`Rector\Carbon\Rector\MethodCall\ChangeCarbonSingularMethodCallToPluralRector`](../rules/Carbon/Rector/MethodCall/ChangeCarbonSingularMethodCallToPluralRector.php)
```diff
use Carbon\Carbon;
final class SomeClass
{
public function run(Carbon $carbon, $value): void
{
- $carbon->addMinute($value);
+ $carbon->addMinutes($value);
}
}
```
<br>
### ChangeDiffForHumansArgsRector
Change methods arguments of `diffForHumans()` on `Carbon\Carbon`
- class: [`Rector\Carbon\Rector\MethodCall\ChangeDiffForHumansArgsRector`](../rules/Carbon/Rector/MethodCall/ChangeDiffForHumansArgsRector.php)
```diff
use Carbon\Carbon;
final class SomeClass
{
public function run(Carbon $carbon): void
{
- $carbon->diffForHumans(null, true);
+ $carbon->diffForHumans(null, \Carbon\CarbonInterface::DIFF_ABSOLUTE);
- $carbon->diffForHumans(null, false);
+ $carbon->diffForHumans(null, \Carbon\CarbonInterface::DIFF_RELATIVE_AUTO);
}
}
```
<br>
## CodeQuality
### AbsolutizeRequireAndIncludePathRector
@ -5140,6 +5091,29 @@ Downgrade previously implemented interface
<br>
### DowngradeReflectionGetTypeRector
Downgrade reflection `$refleciton->getType()` method call
- class: [`Rector\DowngradePhp74\Rector\MethodCall\DowngradeReflectionGetTypeRector`](../rules/DowngradePhp74/Rector/MethodCall/DowngradeReflectionGetTypeRector.php)
```diff
class SomeClass
{
public function run(ReflectionProperty $reflectionProperty)
{
- if ($reflectionProperty->getType()) {
+ if (null) {
return true;
}
return false;
}
}
```
<br>
### DowngradeStripTagsCallWithArrayRector
Convert 2nd param to `strip_tags` from array to string
@ -5467,6 +5441,29 @@ Change constructor property promotion to property asssign
<br>
### DowngradeReflectionGetAttributesRector
Remove reflection `getAttributes()` class method code
- class: [`Rector\DowngradePhp80\Rector\MethodCall\DowngradeReflectionGetAttributesRector`](../rules/DowngradePhp80/Rector/MethodCall/DowngradeReflectionGetAttributesRector.php)
```diff
class SomeClass
{
public function run(ReflectionClass $reflectionClass)
{
- if ($reflectionClass->getAttributes()) {
+ if ([]) {
return true;
}
return false;
}
}
```
<br>
### DowngradeStaticTypeDeclarationRector
Remove "static" return and param type, add a `"@param` `$this"` and `"@return` `$this"` tag instead

View File

@ -8,6 +8,7 @@ use Rector\ChangesReporting\Annotation\RectorsChangelogResolver;
use Rector\ChangesReporting\Contract\Output\OutputFormatterInterface;
use Rector\Core\ValueObject\Configuration;
use Rector\Core\ValueObject\ProcessResult;
use Rector\Parallel\ValueObject\Bridge;
final class JsonOutputFormatter implements \Rector\ChangesReporting\Contract\Output\OutputFormatterInterface
{
/**
@ -33,23 +34,23 @@ final class JsonOutputFormatter implements \Rector\ChangesReporting\Contract\Out
*/
public function report($processResult, $configuration) : void
{
$errorsArray = ['meta' => ['config' => $configuration->getMainConfigFilePath()], 'totals' => ['changed_files' => \count($processResult->getFileDiffs()), 'removed_and_added_files_count' => $processResult->getRemovedAndAddedFilesCount(), 'removed_node_count' => $processResult->getRemovedNodeCount()]];
$errorsJson = ['meta' => ['config' => $configuration->getMainConfigFilePath()], 'totals' => ['changed_files' => \count($processResult->getFileDiffs()), 'removed_and_added_files_count' => $processResult->getRemovedAndAddedFilesCount(), 'removed_node_count' => $processResult->getRemovedNodeCount()]];
$fileDiffs = $processResult->getFileDiffs();
\ksort($fileDiffs);
foreach ($fileDiffs as $fileDiff) {
$relativeFilePath = $fileDiff->getRelativeFilePath();
$appliedRectorsWithChangelog = $this->rectorsChangelogResolver->resolve($fileDiff->getRectorClasses());
$errorsArray['file_diffs'][] = ['file' => $relativeFilePath, 'diff' => $fileDiff->getDiff(), 'applied_rectors' => $fileDiff->getRectorClasses(), 'applied_rectors_with_changelog' => $appliedRectorsWithChangelog];
$errorsJson[\Rector\Parallel\ValueObject\Bridge::FILE_DIFFS][] = ['file' => $relativeFilePath, 'diff' => $fileDiff->getDiff(), 'applied_rectors' => $fileDiff->getRectorClasses(), 'applied_rectors_with_changelog' => $appliedRectorsWithChangelog];
// for Rector CI
$errorsArray['changed_files'][] = $relativeFilePath;
$errorsJson['changed_files'][] = $relativeFilePath;
}
$errors = $processResult->getErrors();
$errorsArray['totals']['errors'] = \count($errors);
$errorsJson['totals']['errors'] = \count($errors);
$errorsData = $this->createErrorsData($errors);
if ($errorsData !== []) {
$errorsArray['errors'] = $errorsData;
$errorsJson['errors'] = $errorsData;
}
$json = \RectorPrefix20211206\Nette\Utils\Json::encode($errorsArray, \RectorPrefix20211206\Nette\Utils\Json::PRETTY);
$json = \RectorPrefix20211206\Nette\Utils\Json::encode($errorsJson, \RectorPrefix20211206\Nette\Utils\Json::PRETTY);
echo $json . \PHP_EOL;
}
/**
@ -60,14 +61,14 @@ final class JsonOutputFormatter implements \Rector\ChangesReporting\Contract\Out
{
$errorsData = [];
foreach ($errors as $error) {
$errorData = ['message' => $error->getMessage(), 'file' => $error->getRelativeFilePath()];
$errorDataJson = ['message' => $error->getMessage(), 'file' => $error->getRelativeFilePath()];
if ($error->getRectorClass()) {
$errorData['caused_by'] = $error->getRectorClass();
$errorDataJson['caused_by'] = $error->getRectorClass();
}
if ($error->getLine() !== null) {
$errorData['line'] = $error->getLine();
$errorDataJson['line'] = $error->getLine();
}
$errorsData[] = $errorData;
$errorsData[] = $errorDataJson;
}
return $errorsData;
}

View File

@ -165,8 +165,4 @@ final class SetList implements \Rector\Set\Contract\SetListInterface
* @var string
*/
public const EARLY_RETURN = __DIR__ . '/../../../config/set/early-return.php';
/**
* @var string
*/
public const CARBON_2 = __DIR__ . '/../../../config/set/carbon-2.php';
}

View File

@ -1,73 +0,0 @@
<?php
declare (strict_types=1);
namespace Rector\Carbon\Rector\MethodCall;
use PhpParser\Node;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Identifier;
use Rector\Core\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
/**
* @changelog https://carbon.nesbot.com/docs/#api-carbon-2
*
* @see \Rector\Tests\Carbon\Rector\MethodCall\ChangeCarbonSingularMethodCallToPluralRector\ChangeCarbonSingularMethodCallToPluralRectorTest
*/
final class ChangeCarbonSingularMethodCallToPluralRector extends \Rector\Core\Rector\AbstractRector
{
/**
* @var array<string, string>
*/
private const SINGULAR_TO_PLURAL_NAMES = ['addSecond' => 'addSeconds', 'subSecond' => 'subSeconds', 'addMinute' => 'addMinutes', 'subMinute' => 'subMinutes', 'addDay' => 'addDays', 'subDay' => 'subDays', 'addHour' => 'addHours', 'subHour' => 'subHours', 'addWeek' => 'addWeeks', 'subWeek' => 'subWeeks', 'addMonth' => 'addMonths', 'subMonth' => 'subMonths', 'addYear' => 'addYears', 'subYear' => 'subYears'];
public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition
{
return new \Symplify\RuleDocGenerator\ValueObject\RuleDefinition('Change setter methods with args to their plural names on Carbon\\Carbon', [new \Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample(<<<'CODE_SAMPLE'
use Carbon\Carbon;
final class SomeClass
{
public function run(Carbon $carbon, $value): void
{
$carbon->addMinute($value);
}
}
CODE_SAMPLE
, <<<'CODE_SAMPLE'
use Carbon\Carbon;
final class SomeClass
{
public function run(Carbon $carbon, $value): void
{
$carbon->addMinutes($value);
}
}
CODE_SAMPLE
)]);
}
/**
* @return array<class-string<Node>>
*/
public function getNodeTypes() : array
{
return [\PhpParser\Node\Expr\MethodCall::class];
}
/**
* @param MethodCall $node
*/
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
{
if ($node->args === []) {
return null;
}
foreach (self::SINGULAR_TO_PLURAL_NAMES as $singularName => $pluralName) {
if (!$this->isName($node->name, $singularName)) {
continue;
}
$node->name = new \PhpParser\Node\Identifier($pluralName);
return $node;
}
return null;
}
}

View File

@ -1,85 +0,0 @@
<?php
declare (strict_types=1);
namespace Rector\Carbon\Rector\MethodCall;
use PhpParser\Node;
use PhpParser\Node\Arg;
use PhpParser\Node\Expr\MethodCall;
use PHPStan\Type\ObjectType;
use Rector\Core\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
/**
* @changelog https://carbon.nesbot.com/docs/#api-carbon-2
*
* @see \Rector\Tests\Carbon\Rector\MethodCall\ChangeDiffForHumansArgsRector\ChangeDiffForHumansArgsRectorTest
*/
final class ChangeDiffForHumansArgsRector extends \Rector\Core\Rector\AbstractRector
{
public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition
{
return new \Symplify\RuleDocGenerator\ValueObject\RuleDefinition('Change methods arguments of diffForHumans() on Carbon\\Carbon', [new \Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample(<<<'CODE_SAMPLE'
use Carbon\Carbon;
final class SomeClass
{
public function run(Carbon $carbon): void
{
$carbon->diffForHumans(null, true);
$carbon->diffForHumans(null, false);
}
}
CODE_SAMPLE
, <<<'CODE_SAMPLE'
use Carbon\Carbon;
final class SomeClass
{
public function run(Carbon $carbon): void
{
$carbon->diffForHumans(null, \Carbon\CarbonInterface::DIFF_ABSOLUTE);
$carbon->diffForHumans(null, \Carbon\CarbonInterface::DIFF_RELATIVE_AUTO);
}
}
CODE_SAMPLE
)]);
}
/**
* @return array<class-string<Node>>
*/
public function getNodeTypes() : array
{
return [\PhpParser\Node\Expr\MethodCall::class];
}
/**
* @param MethodCall $node
*/
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
{
if (!$this->isObjectType($node->var, new \PHPStan\Type\ObjectType('Carbon\\Carbon'))) {
return null;
}
if (!$this->isName($node->name, 'diffForHumans')) {
return null;
}
if (!isset($node->args[1])) {
return null;
}
if (!$node->args[1] instanceof \PhpParser\Node\Arg) {
return null;
}
$secondArgValue = $node->args[1]->value;
if ($this->valueResolver->isTrue($secondArgValue)) {
$node->args[1]->value = $this->nodeFactory->createClassConstFetch('Carbon\\CarbonInterface', 'DIFF_ABSOLUTE');
return $node;
}
if ($this->valueResolver->isFalse($secondArgValue)) {
$node->args[1]->value = $this->nodeFactory->createClassConstFetch('Carbon\\CarbonInterface', 'DIFF_RELATIVE_AUTO');
return $node;
}
return null;
}
}

View File

@ -0,0 +1,73 @@
<?php
declare (strict_types=1);
namespace Rector\DowngradePhp74\Rector\MethodCall;
use PhpParser\Node;
use PhpParser\Node\Expr\Instanceof_;
use PhpParser\Node\Expr\MethodCall;
use PHPStan\Type\ObjectType;
use Rector\Core\Rector\AbstractRector;
use Rector\NodeTypeResolver\Node\AttributeKey;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
/**
* @see \Rector\Tests\DowngradePhp74\Rector\MethodCall\DowngradeReflectionGetTypeRector\DowngradeReflectionGetTypeRectorTest
*/
final class DowngradeReflectionGetTypeRector extends \Rector\Core\Rector\AbstractRector
{
public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition
{
return new \Symplify\RuleDocGenerator\ValueObject\RuleDefinition('Downgrade reflection $refleciton->getType() method call', [new \Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample(<<<'CODE_SAMPLE'
class SomeClass
{
public function run(ReflectionProperty $reflectionProperty)
{
if ($reflectionProperty->getType()) {
return true;
}
return false;
}
}
CODE_SAMPLE
, <<<'CODE_SAMPLE'
class SomeClass
{
public function run(ReflectionProperty $reflectionProperty)
{
if (null) {
return true;
}
return false;
}
}
CODE_SAMPLE
)]);
}
/**
* @return array<class-string<Node>>
*/
public function getNodeTypes() : array
{
return [\PhpParser\Node\Expr\MethodCall::class];
}
/**
* @param MethodCall $node
*/
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
{
if (!$this->isName($node->name, 'getType')) {
return null;
}
if (!$this->isObjectType($node->var, new \PHPStan\Type\ObjectType('ReflectionProperty'))) {
return null;
}
$parent = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::PARENT_NODE);
if ($parent instanceof \PhpParser\Node\Expr\Instanceof_) {
return null;
}
return $this->nodeFactory->createNull();
}
}

View File

@ -95,8 +95,8 @@ final class TypeProvidingExprFromClassResolver
}
private function resolvePropertyFetchProvidingType(\PHPStan\Reflection\ClassReflection $classReflection, \PHPStan\Analyser\Scope $scope, \PHPStan\Type\ObjectType $objectType) : ?\PhpParser\Node\Expr\PropertyFetch
{
$reflectionClass = $classReflection->getNativeReflection();
foreach ($reflectionClass->getProperties() as $reflectionProperty) {
$nativeReflectionClass = $classReflection->getNativeReflection();
foreach ($nativeReflectionClass->getProperties() as $reflectionProperty) {
/** @var PhpPropertyReflection $phpPropertyReflection */
$phpPropertyReflection = $classReflection->getProperty($reflectionProperty->getName(), $scope);
$readableType = $phpPropertyReflection->getReadableType();

View File

@ -83,7 +83,7 @@ class SomeClass
}
}
CODE_SAMPLE
, [self::METHOD_CALLS_TO_METHOD_CALLS => [new \Rector\Transform\ValueObject\MethodCallToMethodCall('FirstDependency', 'go', 'SecondDependency', 'away')]])]);
, [new \Rector\Transform\ValueObject\MethodCallToMethodCall('FirstDependency', 'go', 'SecondDependency', 'away')])]);
}
/**
* @return array<class-string<Node>>
@ -148,7 +148,7 @@ CODE_SAMPLE
if ($classContextProperty === null) {
return $newPropertyName;
}
// re-use existing proeprty name
// re-use existing property name
return $this->getName($classContextProperty);
}
}

View File

@ -16,11 +16,11 @@ final class VersionResolver
/**
* @var string
*/
public const PACKAGE_VERSION = 'a68528204268680699cf9d60a82904c7532215db';
public const PACKAGE_VERSION = '079b20c8947e3ffe85dab6ed53eff9d3f7910cdf';
/**
* @var string
*/
public const RELEASE_DATE = '2021-12-06 13:54:18';
public const RELEASE_DATE = '2021-12-06 20:29:15';
public static function resolvePackageVersion() : string
{
$process = new \RectorPrefix20211206\Symfony\Component\Process\Process(['git', 'log', '--pretty="%H"', '-n1', 'HEAD'], __DIR__);

View File

@ -6,14 +6,14 @@ namespace Rector\Core\NodeAnalyzer;
use PhpParser\Node\Param;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\Property;
use PHPStan\Reflection\ClassReflection;
use PHPStan\Reflection\Php\PhpPropertyReflection;
use PHPStan\Reflection\ReflectionProvider;
use PHPStan\Type\TypeWithClassName;
use Rector\Core\PhpParser\AstResolver;
use Rector\NodeNameResolver\NodeNameResolver;
use Rector\Php80\NodeAnalyzer\PromotedPropertyResolver;
use Rector\PostRector\ValueObject\PropertyMetadata;
use ReflectionNamedType;
use ReflectionProperty;
/**
* Can be local property, parent property etc.
*/
@ -59,7 +59,10 @@ final class PropertyPresenceChecker
*/
public function getClassContextProperty(\PhpParser\Node\Stmt\Class_ $class, \Rector\PostRector\ValueObject\PropertyMetadata $propertyMetadata)
{
$className = (string) $this->nodeNameResolver->getName($class);
$className = $this->nodeNameResolver->getName($class);
if ($className === null) {
return null;
}
if (!$this->reflectionProvider->hasClass($className)) {
return null;
}
@ -67,7 +70,7 @@ final class PropertyPresenceChecker
if ($property instanceof \PhpParser\Node\Stmt\Property) {
return $property;
}
$property = $this->matchPropertyByParentPublicOrProtectedProperties($className, $propertyMetadata);
$property = $this->matchPropertyByParentNonPrivateProperties($className, $propertyMetadata);
if ($property instanceof \PhpParser\Node\Stmt\Property || $property instanceof \PhpParser\Node\Param) {
return $property;
}
@ -80,9 +83,9 @@ final class PropertyPresenceChecker
return null;
}
/**
* @return ReflectionProperty[]
* @return PhpPropertyReflection[]
*/
private function getParentClassPublicAndProtectedPropertyReflections(string $className) : array
private function getParentClassNonPrivatePropertyReflections(string $className) : array
{
if (!$this->reflectionProvider->hasClass($className)) {
return [];
@ -90,55 +93,66 @@ final class PropertyPresenceChecker
$classReflection = $this->reflectionProvider->getClass($className);
$propertyReflections = [];
foreach ($classReflection->getParents() as $parentClassReflection) {
$nativeReflectionClass = $parentClassReflection->getNativeReflection();
$currentPropertyReflections = $nativeReflectionClass->getProperties(\ReflectionProperty::IS_PUBLIC | \ReflectionProperty::IS_PROTECTED);
$propertyReflections = \array_merge($propertyReflections, $currentPropertyReflections);
$propertyNames = $this->resolveNonPrivatePropertyNames($parentClassReflection);
foreach ($propertyNames as $propertyName) {
$propertyReflections[] = $parentClassReflection->getNativeProperty($propertyName);
}
}
return $propertyReflections;
}
/**
* @return \PhpParser\Node\Param|\PhpParser\Node\Stmt\Property|null
*/
private function matchPropertyByType(\Rector\PostRector\ValueObject\PropertyMetadata $propertyMetadata, \ReflectionProperty $reflectionProperty)
private function matchPropertyByType(\Rector\PostRector\ValueObject\PropertyMetadata $propertyMetadata, \PHPStan\Reflection\Php\PhpPropertyReflection $phpPropertyReflection)
{
if ($propertyMetadata->getType() === null) {
return null;
}
if (!$reflectionProperty->getType() instanceof \ReflectionNamedType) {
return null;
}
if (!$propertyMetadata->getType() instanceof \PHPStan\Type\TypeWithClassName) {
return null;
}
$propertyObjectType = $propertyMetadata->getType();
$propertyObjectTypeClassName = $propertyObjectType->getClassName();
if ($propertyObjectTypeClassName !== (string) $reflectionProperty->getType()) {
if (!$phpPropertyReflection->getWritableType() instanceof \PHPStan\Type\TypeWithClassName) {
return null;
}
$propertyObjectType = $propertyMetadata->getType();
$propertyObjectTypeClassName = $propertyObjectType->getClassName();
if ($propertyObjectTypeClassName !== (string) $reflectionProperty->getType()) {
if (!$propertyObjectType->equals($phpPropertyReflection->getWritableType())) {
return null;
}
return $this->astResolver->resolvePropertyFromPropertyReflection($reflectionProperty);
return $this->astResolver->resolvePropertyFromPropertyReflection($phpPropertyReflection);
}
/**
* @return \PhpParser\Node\Param|\PhpParser\Node\Stmt\Property|null
*/
private function matchPropertyByParentPublicOrProtectedProperties(string $className, \Rector\PostRector\ValueObject\PropertyMetadata $propertyMetadata)
private function matchPropertyByParentNonPrivateProperties(string $className, \Rector\PostRector\ValueObject\PropertyMetadata $propertyMetadata)
{
$availablePropertyReflections = $this->getParentClassPublicAndProtectedPropertyReflections($className);
$availablePropertyReflections = $this->getParentClassNonPrivatePropertyReflections($className);
foreach ($availablePropertyReflections as $availablePropertyReflection) {
// 1. match type by priority
$property = $this->matchPropertyByType($propertyMetadata, $availablePropertyReflection);
if ($property instanceof \PhpParser\Node\Stmt\Property || $property instanceof \PhpParser\Node\Param) {
return $property;
}
$nativePropertyReflection = $availablePropertyReflection->getNativeReflection();
// 2. match by name
if ($availablePropertyReflection->getName() === $propertyMetadata->getName()) {
if ($nativePropertyReflection->getName() === $propertyMetadata->getName()) {
return $this->astResolver->resolvePropertyFromPropertyReflection($availablePropertyReflection);
}
}
return null;
}
/**
* @return string[]
*/
private function resolveNonPrivatePropertyNames(\PHPStan\Reflection\ClassReflection $classReflection) : array
{
$propertyNames = [];
$reflectionClass = $classReflection->getNativeReflection();
foreach ($reflectionClass->getProperties() as $reflectionProperty) {
if ($reflectionProperty->isPrivate()) {
continue;
}
$propertyNames[] = $reflectionProperty->getName();
}
return $propertyNames;
}
}

View File

@ -21,6 +21,7 @@ use PHPStan\Analyser\Scope;
use PHPStan\Reflection\ClassReflection;
use PHPStan\Reflection\FunctionReflection;
use PHPStan\Reflection\MethodReflection;
use PHPStan\Reflection\Php\PhpPropertyReflection;
use PHPStan\Reflection\ReflectionProvider;
use PHPStan\Type\TypeWithClassName;
use Rector\Core\PhpParser\Node\BetterNodeFinder;
@ -30,7 +31,6 @@ use Rector\Core\ValueObject\MethodName;
use Rector\NodeNameResolver\NodeNameResolver;
use Rector\NodeTypeResolver\NodeScopeAndMetadataDecorator;
use Rector\NodeTypeResolver\NodeTypeResolver;
use ReflectionProperty;
use RectorPrefix20211206\Symplify\Astral\PhpParser\SmartPhpParser;
use Symplify\SmartFileSystem\SmartFileInfo;
use RectorPrefix20211206\Symplify\SmartFileSystem\SmartFileSystem;
@ -269,18 +269,19 @@ final class AstResolver
/**
* @return \PhpParser\Node\Param|\PhpParser\Node\Stmt\Property|null
*/
public function resolvePropertyFromPropertyReflection(\ReflectionProperty $reflectionProperty)
public function resolvePropertyFromPropertyReflection(\PHPStan\Reflection\Php\PhpPropertyReflection $phpPropertyReflection)
{
$reflectionClass = $reflectionProperty->getDeclaringClass();
$fileName = $reflectionClass->getFileName();
if ($fileName === \false) {
$classReflection = $phpPropertyReflection->getDeclaringClass();
$fileName = $classReflection->getFileName();
if ($fileName === null) {
return null;
}
$nodes = $this->parseFileNameToDecoratedNodes($fileName);
if ($nodes === null) {
return null;
}
$desiredPropertyName = $reflectionProperty->name;
$nativeReflectionProperty = $phpPropertyReflection->getNativeReflection();
$desiredPropertyName = $nativeReflectionProperty->getName();
/** @var Property[] $properties */
$properties = $this->betterNodeFinder->findInstanceOf($nodes, \PhpParser\Node\Stmt\Property::class);
foreach ($properties as $property) {

2
vendor/autoload.php vendored
View File

@ -4,4 +4,4 @@
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInitad990f187e90a0c8236f265ebda091e0::getLoader();
return ComposerAutoloaderInitc0d47fc313f9ea913da3733da09c3ef3::getLoader();

View File

@ -1212,7 +1212,6 @@ return array(
'RectorPrefix20211206\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php',
'RectorPrefix20211206\\Symplify\\EasyParallel\\ValueObject\\Schedule' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/Schedule.php',
'RectorPrefix20211206\\Symplify\\EasyTesting\\Command\\ValidateFixtureSkipNamingCommand' => $vendorDir . '/symplify/easy-testing/src/Command/ValidateFixtureSkipNamingCommand.php',
'RectorPrefix20211206\\Symplify\\EasyTesting\\Console\\EasyTestingConsoleApplication' => $vendorDir . '/symplify/easy-testing/src/Console/EasyTestingConsoleApplication.php',
'RectorPrefix20211206\\Symplify\\EasyTesting\\DataProvider\\StaticFixtureFinder' => $vendorDir . '/symplify/easy-testing/src/DataProvider/StaticFixtureFinder.php',
'RectorPrefix20211206\\Symplify\\EasyTesting\\DataProvider\\StaticFixtureUpdater' => $vendorDir . '/symplify/easy-testing/src/DataProvider/StaticFixtureUpdater.php',
'RectorPrefix20211206\\Symplify\\EasyTesting\\Finder\\FixtureFinder' => $vendorDir . '/symplify/easy-testing/src/Finder/FixtureFinder.php',
@ -1304,7 +1303,6 @@ return array(
'RectorPrefix20211206\\Symplify\\VendorPatches\\Composer\\ComposerPatchesConfigurationUpdater' => $vendorDir . '/symplify/vendor-patches/src/Composer/ComposerPatchesConfigurationUpdater.php',
'RectorPrefix20211206\\Symplify\\VendorPatches\\Composer\\PackageNameResolver' => $vendorDir . '/symplify/vendor-patches/src/Composer/PackageNameResolver.php',
'RectorPrefix20211206\\Symplify\\VendorPatches\\Console\\GenerateCommandReporter' => $vendorDir . '/symplify/vendor-patches/src/Console/GenerateCommandReporter.php',
'RectorPrefix20211206\\Symplify\\VendorPatches\\Console\\VendorPatchesConsoleApplication' => $vendorDir . '/symplify/vendor-patches/src/Console/VendorPatchesConsoleApplication.php',
'RectorPrefix20211206\\Symplify\\VendorPatches\\Differ\\PatchDiffer' => $vendorDir . '/symplify/vendor-patches/src/Differ/PatchDiffer.php',
'RectorPrefix20211206\\Symplify\\VendorPatches\\FileSystem\\PathResolver' => $vendorDir . '/symplify/vendor-patches/src/FileSystem/PathResolver.php',
'RectorPrefix20211206\\Symplify\\VendorPatches\\Finder\\OldToNewFilesFinder' => $vendorDir . '/symplify/vendor-patches/src/Finder/OldToNewFilesFinder.php',
@ -1437,8 +1435,6 @@ return array(
'Rector\\CakePHP\\ValueObject\\ModalToGetSet' => $vendorDir . '/rector/rector-cakephp/src/ValueObject/ModalToGetSet.php',
'Rector\\CakePHP\\ValueObject\\RemoveIntermediaryMethod' => $vendorDir . '/rector/rector-cakephp/src/ValueObject/RemoveIntermediaryMethod.php',
'Rector\\CakePHP\\ValueObject\\RenameMethodCallBasedOnParameter' => $vendorDir . '/rector/rector-cakephp/src/ValueObject/RenameMethodCallBasedOnParameter.php',
'Rector\\Carbon\\Rector\\MethodCall\\ChangeCarbonSingularMethodCallToPluralRector' => $baseDir . '/rules/Carbon/Rector/MethodCall/ChangeCarbonSingularMethodCallToPluralRector.php',
'Rector\\Carbon\\Rector\\MethodCall\\ChangeDiffForHumansArgsRector' => $baseDir . '/rules/Carbon/Rector/MethodCall/ChangeDiffForHumansArgsRector.php',
'Rector\\ChangesReporting\\Annotation\\AnnotationExtractor' => $baseDir . '/packages/ChangesReporting/Annotation/AnnotationExtractor.php',
'Rector\\ChangesReporting\\Annotation\\RectorsChangelogResolver' => $baseDir . '/packages/ChangesReporting/Annotation/RectorsChangelogResolver.php',
'Rector\\ChangesReporting\\Collector\\AffectedFilesCollector' => $baseDir . '/packages/ChangesReporting/Collector/AffectedFilesCollector.php',
@ -1998,6 +1994,7 @@ return array(
'Rector\\DowngradePhp74\\Rector\\Identical\\DowngradeFreadFwriteFalsyToNegationRector' => $baseDir . '/rules/DowngradePhp74/Rector/Identical/DowngradeFreadFwriteFalsyToNegationRector.php',
'Rector\\DowngradePhp74\\Rector\\Interface_\\DowngradePreviouslyImplementedInterfaceRector' => $baseDir . '/rules/DowngradePhp74/Rector/Interface_/DowngradePreviouslyImplementedInterfaceRector.php',
'Rector\\DowngradePhp74\\Rector\\LNumber\\DowngradeNumericLiteralSeparatorRector' => $baseDir . '/rules/DowngradePhp74/Rector/LNumber/DowngradeNumericLiteralSeparatorRector.php',
'Rector\\DowngradePhp74\\Rector\\MethodCall\\DowngradeReflectionGetTypeRector' => $baseDir . '/rules/DowngradePhp74/Rector/MethodCall/DowngradeReflectionGetTypeRector.php',
'Rector\\DowngradePhp74\\Rector\\Property\\DowngradeTypedPropertyRector' => $baseDir . '/rules/DowngradePhp74/Rector/Property/DowngradeTypedPropertyRector.php',
'Rector\\DowngradePhp80\\NodeAnalyzer\\NamedToUnnamedArgs' => $baseDir . '/rules/DowngradePhp80/NodeAnalyzer/NamedToUnnamedArgs.php',
'Rector\\DowngradePhp80\\NodeAnalyzer\\UnnamedArgumentResolver' => $baseDir . '/rules/DowngradePhp80/NodeAnalyzer/UnnamedArgumentResolver.php',

View File

@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
class ComposerAutoloaderInitad990f187e90a0c8236f265ebda091e0
class ComposerAutoloaderInitc0d47fc313f9ea913da3733da09c3ef3
{
private static $loader;
@ -22,15 +22,15 @@ class ComposerAutoloaderInitad990f187e90a0c8236f265ebda091e0
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInitad990f187e90a0c8236f265ebda091e0', 'loadClassLoader'), true, true);
spl_autoload_register(array('ComposerAutoloaderInitc0d47fc313f9ea913da3733da09c3ef3', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
spl_autoload_unregister(array('ComposerAutoloaderInitad990f187e90a0c8236f265ebda091e0', 'loadClassLoader'));
spl_autoload_unregister(array('ComposerAutoloaderInitc0d47fc313f9ea913da3733da09c3ef3', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitad990f187e90a0c8236f265ebda091e0::getInitializer($loader));
call_user_func(\Composer\Autoload\ComposerStaticInitc0d47fc313f9ea913da3733da09c3ef3::getInitializer($loader));
} else {
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
@ -42,19 +42,19 @@ class ComposerAutoloaderInitad990f187e90a0c8236f265ebda091e0
$loader->register(true);
if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInitad990f187e90a0c8236f265ebda091e0::$files;
$includeFiles = Composer\Autoload\ComposerStaticInitc0d47fc313f9ea913da3733da09c3ef3::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequiread990f187e90a0c8236f265ebda091e0($fileIdentifier, $file);
composerRequirec0d47fc313f9ea913da3733da09c3ef3($fileIdentifier, $file);
}
return $loader;
}
}
function composerRequiread990f187e90a0c8236f265ebda091e0($fileIdentifier, $file)
function composerRequirec0d47fc313f9ea913da3733da09c3ef3($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file;

View File

@ -4,7 +4,7 @@
namespace Composer\Autoload;
class ComposerStaticInitad990f187e90a0c8236f265ebda091e0
class ComposerStaticInitc0d47fc313f9ea913da3733da09c3ef3
{
public static $files = array (
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
@ -1609,7 +1609,6 @@ class ComposerStaticInitad990f187e90a0c8236f265ebda091e0
'RectorPrefix20211206\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php',
'RectorPrefix20211206\\Symplify\\EasyParallel\\ValueObject\\Schedule' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/Schedule.php',
'RectorPrefix20211206\\Symplify\\EasyTesting\\Command\\ValidateFixtureSkipNamingCommand' => __DIR__ . '/..' . '/symplify/easy-testing/src/Command/ValidateFixtureSkipNamingCommand.php',
'RectorPrefix20211206\\Symplify\\EasyTesting\\Console\\EasyTestingConsoleApplication' => __DIR__ . '/..' . '/symplify/easy-testing/src/Console/EasyTestingConsoleApplication.php',
'RectorPrefix20211206\\Symplify\\EasyTesting\\DataProvider\\StaticFixtureFinder' => __DIR__ . '/..' . '/symplify/easy-testing/src/DataProvider/StaticFixtureFinder.php',
'RectorPrefix20211206\\Symplify\\EasyTesting\\DataProvider\\StaticFixtureUpdater' => __DIR__ . '/..' . '/symplify/easy-testing/src/DataProvider/StaticFixtureUpdater.php',
'RectorPrefix20211206\\Symplify\\EasyTesting\\Finder\\FixtureFinder' => __DIR__ . '/..' . '/symplify/easy-testing/src/Finder/FixtureFinder.php',
@ -1701,7 +1700,6 @@ class ComposerStaticInitad990f187e90a0c8236f265ebda091e0
'RectorPrefix20211206\\Symplify\\VendorPatches\\Composer\\ComposerPatchesConfigurationUpdater' => __DIR__ . '/..' . '/symplify/vendor-patches/src/Composer/ComposerPatchesConfigurationUpdater.php',
'RectorPrefix20211206\\Symplify\\VendorPatches\\Composer\\PackageNameResolver' => __DIR__ . '/..' . '/symplify/vendor-patches/src/Composer/PackageNameResolver.php',
'RectorPrefix20211206\\Symplify\\VendorPatches\\Console\\GenerateCommandReporter' => __DIR__ . '/..' . '/symplify/vendor-patches/src/Console/GenerateCommandReporter.php',
'RectorPrefix20211206\\Symplify\\VendorPatches\\Console\\VendorPatchesConsoleApplication' => __DIR__ . '/..' . '/symplify/vendor-patches/src/Console/VendorPatchesConsoleApplication.php',
'RectorPrefix20211206\\Symplify\\VendorPatches\\Differ\\PatchDiffer' => __DIR__ . '/..' . '/symplify/vendor-patches/src/Differ/PatchDiffer.php',
'RectorPrefix20211206\\Symplify\\VendorPatches\\FileSystem\\PathResolver' => __DIR__ . '/..' . '/symplify/vendor-patches/src/FileSystem/PathResolver.php',
'RectorPrefix20211206\\Symplify\\VendorPatches\\Finder\\OldToNewFilesFinder' => __DIR__ . '/..' . '/symplify/vendor-patches/src/Finder/OldToNewFilesFinder.php',
@ -1834,8 +1832,6 @@ class ComposerStaticInitad990f187e90a0c8236f265ebda091e0
'Rector\\CakePHP\\ValueObject\\ModalToGetSet' => __DIR__ . '/..' . '/rector/rector-cakephp/src/ValueObject/ModalToGetSet.php',
'Rector\\CakePHP\\ValueObject\\RemoveIntermediaryMethod' => __DIR__ . '/..' . '/rector/rector-cakephp/src/ValueObject/RemoveIntermediaryMethod.php',
'Rector\\CakePHP\\ValueObject\\RenameMethodCallBasedOnParameter' => __DIR__ . '/..' . '/rector/rector-cakephp/src/ValueObject/RenameMethodCallBasedOnParameter.php',
'Rector\\Carbon\\Rector\\MethodCall\\ChangeCarbonSingularMethodCallToPluralRector' => __DIR__ . '/../..' . '/rules/Carbon/Rector/MethodCall/ChangeCarbonSingularMethodCallToPluralRector.php',
'Rector\\Carbon\\Rector\\MethodCall\\ChangeDiffForHumansArgsRector' => __DIR__ . '/../..' . '/rules/Carbon/Rector/MethodCall/ChangeDiffForHumansArgsRector.php',
'Rector\\ChangesReporting\\Annotation\\AnnotationExtractor' => __DIR__ . '/../..' . '/packages/ChangesReporting/Annotation/AnnotationExtractor.php',
'Rector\\ChangesReporting\\Annotation\\RectorsChangelogResolver' => __DIR__ . '/../..' . '/packages/ChangesReporting/Annotation/RectorsChangelogResolver.php',
'Rector\\ChangesReporting\\Collector\\AffectedFilesCollector' => __DIR__ . '/../..' . '/packages/ChangesReporting/Collector/AffectedFilesCollector.php',
@ -2395,6 +2391,7 @@ class ComposerStaticInitad990f187e90a0c8236f265ebda091e0
'Rector\\DowngradePhp74\\Rector\\Identical\\DowngradeFreadFwriteFalsyToNegationRector' => __DIR__ . '/../..' . '/rules/DowngradePhp74/Rector/Identical/DowngradeFreadFwriteFalsyToNegationRector.php',
'Rector\\DowngradePhp74\\Rector\\Interface_\\DowngradePreviouslyImplementedInterfaceRector' => __DIR__ . '/../..' . '/rules/DowngradePhp74/Rector/Interface_/DowngradePreviouslyImplementedInterfaceRector.php',
'Rector\\DowngradePhp74\\Rector\\LNumber\\DowngradeNumericLiteralSeparatorRector' => __DIR__ . '/../..' . '/rules/DowngradePhp74/Rector/LNumber/DowngradeNumericLiteralSeparatorRector.php',
'Rector\\DowngradePhp74\\Rector\\MethodCall\\DowngradeReflectionGetTypeRector' => __DIR__ . '/../..' . '/rules/DowngradePhp74/Rector/MethodCall/DowngradeReflectionGetTypeRector.php',
'Rector\\DowngradePhp74\\Rector\\Property\\DowngradeTypedPropertyRector' => __DIR__ . '/../..' . '/rules/DowngradePhp74/Rector/Property/DowngradeTypedPropertyRector.php',
'Rector\\DowngradePhp80\\NodeAnalyzer\\NamedToUnnamedArgs' => __DIR__ . '/../..' . '/rules/DowngradePhp80/NodeAnalyzer/NamedToUnnamedArgs.php',
'Rector\\DowngradePhp80\\NodeAnalyzer\\UnnamedArgumentResolver' => __DIR__ . '/../..' . '/rules/DowngradePhp80/NodeAnalyzer/UnnamedArgumentResolver.php',
@ -3789,9 +3786,9 @@ class ComposerStaticInitad990f187e90a0c8236f265ebda091e0
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInitad990f187e90a0c8236f265ebda091e0::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitad990f187e90a0c8236f265ebda091e0::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInitad990f187e90a0c8236f265ebda091e0::$classMap;
$loader->prefixLengthsPsr4 = ComposerStaticInitc0d47fc313f9ea913da3733da09c3ef3::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitc0d47fc313f9ea913da3733da09c3ef3::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInitc0d47fc313f9ea913da3733da09c3ef3::$classMap;
}, null, ClassLoader::class);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -79,7 +79,7 @@ final class Reflection
*/
public static function getPropertyType($prop) : ?string
{
return self::getType($prop, \PHP_VERSION_ID >= 70400 ? $prop->getType() : null);
return self::getType($prop, \PHP_VERSION_ID >= 70400 ? null : null);
}
/**
* @deprecated

View File

@ -12,8 +12,8 @@ if (!class_exists('GenerateChangelogCommand', false) && !interface_exists('Gener
if (!class_exists('AutoloadIncluder', false) && !interface_exists('AutoloadIncluder', false) && !trait_exists('AutoloadIncluder', false)) {
spl_autoload_call('RectorPrefix20211206\AutoloadIncluder');
}
if (!class_exists('ComposerAutoloaderInitad990f187e90a0c8236f265ebda091e0', false) && !interface_exists('ComposerAutoloaderInitad990f187e90a0c8236f265ebda091e0', false) && !trait_exists('ComposerAutoloaderInitad990f187e90a0c8236f265ebda091e0', false)) {
spl_autoload_call('RectorPrefix20211206\ComposerAutoloaderInitad990f187e90a0c8236f265ebda091e0');
if (!class_exists('ComposerAutoloaderInitc0d47fc313f9ea913da3733da09c3ef3', false) && !interface_exists('ComposerAutoloaderInitc0d47fc313f9ea913da3733da09c3ef3', false) && !trait_exists('ComposerAutoloaderInitc0d47fc313f9ea913da3733da09c3ef3', false)) {
spl_autoload_call('RectorPrefix20211206\ComposerAutoloaderInitc0d47fc313f9ea913da3733da09c3ef3');
}
if (!class_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !interface_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !trait_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false)) {
spl_autoload_call('RectorPrefix20211206\Helmich\TypoScriptParser\Parser\AST\Statement');
@ -81,9 +81,9 @@ if (!function_exists('print_node')) {
return \RectorPrefix20211206\print_node(...func_get_args());
}
}
if (!function_exists('composerRequiread990f187e90a0c8236f265ebda091e0')) {
function composerRequiread990f187e90a0c8236f265ebda091e0() {
return \RectorPrefix20211206\composerRequiread990f187e90a0c8236f265ebda091e0(...func_get_args());
if (!function_exists('composerRequirec0d47fc313f9ea913da3733da09c3ef3')) {
function composerRequirec0d47fc313f9ea913da3733da09c3ef3() {
return \RectorPrefix20211206\composerRequirec0d47fc313f9ea913da3733da09c3ef3(...func_get_args());
}
}
if (!function_exists('scanPath')) {

View File

@ -40,7 +40,7 @@ class AutowireRequiredPropertiesPass extends \RectorPrefix20211206\Symfony\Compo
}
$properties = $value->getProperties();
foreach ($reflectionClass->getProperties() as $reflectionProperty) {
if (!($type = $reflectionProperty->getType()) instanceof \ReflectionNamedType) {
if (!($type = null) instanceof \ReflectionNamedType) {
continue;
}
if ((\PHP_VERSION_ID < 80000 || ![]) && (\false === ($doc = $reflectionProperty->getDocComment()) || \false === \stripos($doc, '@required') || !\preg_match('#(?:^/\\*\\*|\\n\\s*+\\*)\\s*+@required(?:\\s|\\*/$)#i', $doc))) {

View File

@ -75,7 +75,7 @@ final class Preloader
$r->getDefaultProperties();
if (\PHP_VERSION_ID >= 70400) {
foreach ($r->getProperties(\ReflectionProperty::IS_PUBLIC) as $p) {
self::preloadType($p->getType(), $preloaded);
self::preloadType(null, $preloaded);
}
}
foreach ($r->getMethods(\ReflectionMethod::IS_PUBLIC) as $m) {

View File

@ -6,7 +6,7 @@
"require": {
"php": ">=8.0",
"nette\/utils": "^3.2",
"symfony\/dependency-injection": "^5.3|^6.0",
"symfony\/dependency-injection": "^5.4|^6.0",
"symplify\/smart-file-system": "^10.0",
"phpstan\/phpstan": "^1.2",
"nikic\/php-parser": "^4.13",
@ -38,36 +38,37 @@
}
},
"conflict": {
"symplify\/composer-json-manipulator": "<10.0.0-beta15",
"symplify\/easy-coding-standard": "<10.0.0-beta15",
"symplify\/phpstan-rules": "<10.0.0-beta15",
"symplify\/easy-testing": "<10.0.0-beta15",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta15",
"symplify\/symfony-php-config": "<10.0.0-beta15",
"symplify\/simple-php-doc-parser": "<10.0.0-beta15",
"symplify\/php-config-printer": "<10.0.0-beta15",
"symplify\/console-color-diff": "<10.0.0-beta15",
"symplify\/markdown-diff": "<10.0.0-beta15",
"symplify\/amnesia": "<10.0.0-beta15",
"symplify\/phpstan-extensions": "<10.0.0-beta15",
"symplify\/rule-doc-generator": "<10.0.0-beta15",
"symplify\/vendor-patches": "<10.0.0-beta15",
"symplify\/skipper": "<10.0.0-beta15",
"symplify\/composer-json-manipulator": "<10.0.0-beta17",
"symplify\/easy-coding-standard": "<10.0.0-beta17",
"symplify\/phpstan-rules": "<10.0.0-beta17",
"symplify\/easy-testing": "<10.0.0-beta17",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta17",
"symplify\/symfony-php-config": "<10.0.0-beta17",
"symplify\/simple-php-doc-parser": "<10.0.0-beta17",
"symplify\/php-config-printer": "<10.0.0-beta17",
"symplify\/console-color-diff": "<10.0.0-beta17",
"symplify\/markdown-diff": "<10.0.0-beta17",
"symplify\/amnesia": "<10.0.0-beta17",
"symplify\/phpstan-extensions": "<10.0.0-beta17",
"symplify\/rule-doc-generator": "<10.0.0-beta17",
"symplify\/vendor-patches": "<10.0.0-beta17",
"symplify\/skipper": "<10.0.0-beta17",
"symplify\/smart-file-system": "<9.4.70",
"symplify\/symfony-static-dumper": "<10.0.0-beta15",
"symplify\/git-wrapper": "<10.0.0-beta15",
"symplify\/symfony-static-dumper": "<10.0.0-beta17",
"symplify\/git-wrapper": "<10.0.0-beta17",
"symplify\/symplify-kernel": "<9.4.70",
"symplify\/monorepo-builder": "<10.0.0-beta15",
"symplify\/config-transformer": "<10.0.0-beta15",
"symplify\/easy-ci": "<10.0.0-beta15",
"symplify\/coding-standard": "<10.0.0-beta15",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta15",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta15",
"symplify\/template-phpstan-compiler": "<10.0.0-beta15",
"symplify\/phpstan-latte-rules": "<10.0.0-beta15",
"symplify\/phpstan-twig-rules": "<10.0.0-beta15",
"symplify\/autowire-array-parameter": "<10.0.0-beta15",
"symplify\/easy-parallel": "<10.0.0-beta15"
"symplify\/monorepo-builder": "<10.0.0-beta17",
"symplify\/config-transformer": "<10.0.0-beta17",
"symplify\/easy-ci": "<10.0.0-beta17",
"symplify\/coding-standard": "<10.0.0-beta17",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta17",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta17",
"symplify\/template-phpstan-compiler": "<10.0.0-beta17",
"symplify\/phpstan-latte-rules": "<10.0.0-beta17",
"symplify\/phpstan-twig-rules": "<10.0.0-beta17",
"symplify\/autowire-array-parameter": "<10.0.0-beta17",
"symplify\/easy-parallel": "<10.0.0-beta17",
"symplify\/neon-config-dumper": "<10.0.0-beta17"
},
"minimum-stability": "dev",
"prefer-stable": true

View File

@ -22,6 +22,15 @@ final class SimpleNodeFinder
$this->typeChecker = $typeChecker;
$this->nodeFinder = $nodeFinder;
}
/**
* @template T of Node
* @param class-string<T> $nodeClass
* @return \PhpParser\Node|null
*/
public function findFirstByType(\PhpParser\Node $node, string $nodeClass)
{
return $this->nodeFinder->findFirstInstanceOf($node, $nodeClass);
}
/**
* @template T of Node
* @param class-string<T> $nodeClass

View File

@ -5,7 +5,7 @@
"require": {
"php": ">=8.0",
"nette\/utils": "^3.2",
"symfony\/dependency-injection": "^5.3|^6.0",
"symfony\/dependency-injection": "^5.4|^6.0",
"symplify\/package-builder": "^10.0"
},
"require-dev": {
@ -27,36 +27,37 @@
}
},
"conflict": {
"symplify\/astral": "<10.0.0-beta15",
"symplify\/composer-json-manipulator": "<10.0.0-beta15",
"symplify\/easy-coding-standard": "<10.0.0-beta15",
"symplify\/phpstan-rules": "<10.0.0-beta15",
"symplify\/easy-testing": "<10.0.0-beta15",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta15",
"symplify\/symfony-php-config": "<10.0.0-beta15",
"symplify\/simple-php-doc-parser": "<10.0.0-beta15",
"symplify\/php-config-printer": "<10.0.0-beta15",
"symplify\/console-color-diff": "<10.0.0-beta15",
"symplify\/markdown-diff": "<10.0.0-beta15",
"symplify\/amnesia": "<10.0.0-beta15",
"symplify\/phpstan-extensions": "<10.0.0-beta15",
"symplify\/rule-doc-generator": "<10.0.0-beta15",
"symplify\/vendor-patches": "<10.0.0-beta15",
"symplify\/skipper": "<10.0.0-beta15",
"symplify\/smart-file-system": "<10.0.0-beta15",
"symplify\/symfony-static-dumper": "<10.0.0-beta15",
"symplify\/git-wrapper": "<10.0.0-beta15",
"symplify\/symplify-kernel": "<10.0.0-beta15",
"symplify\/monorepo-builder": "<10.0.0-beta15",
"symplify\/config-transformer": "<10.0.0-beta15",
"symplify\/easy-ci": "<10.0.0-beta15",
"symplify\/coding-standard": "<10.0.0-beta15",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta15",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta15",
"symplify\/template-phpstan-compiler": "<10.0.0-beta15",
"symplify\/phpstan-latte-rules": "<10.0.0-beta15",
"symplify\/phpstan-twig-rules": "<10.0.0-beta15",
"symplify\/easy-parallel": "<10.0.0-beta15"
"symplify\/astral": "<10.0.0-beta17",
"symplify\/composer-json-manipulator": "<10.0.0-beta17",
"symplify\/easy-coding-standard": "<10.0.0-beta17",
"symplify\/phpstan-rules": "<10.0.0-beta17",
"symplify\/easy-testing": "<10.0.0-beta17",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta17",
"symplify\/symfony-php-config": "<10.0.0-beta17",
"symplify\/simple-php-doc-parser": "<10.0.0-beta17",
"symplify\/php-config-printer": "<10.0.0-beta17",
"symplify\/console-color-diff": "<10.0.0-beta17",
"symplify\/markdown-diff": "<10.0.0-beta17",
"symplify\/amnesia": "<10.0.0-beta17",
"symplify\/phpstan-extensions": "<10.0.0-beta17",
"symplify\/rule-doc-generator": "<10.0.0-beta17",
"symplify\/vendor-patches": "<10.0.0-beta17",
"symplify\/skipper": "<10.0.0-beta17",
"symplify\/smart-file-system": "<10.0.0-beta17",
"symplify\/symfony-static-dumper": "<10.0.0-beta17",
"symplify\/git-wrapper": "<10.0.0-beta17",
"symplify\/symplify-kernel": "<10.0.0-beta17",
"symplify\/monorepo-builder": "<10.0.0-beta17",
"symplify\/config-transformer": "<10.0.0-beta17",
"symplify\/easy-ci": "<10.0.0-beta17",
"symplify\/coding-standard": "<10.0.0-beta17",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta17",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta17",
"symplify\/template-phpstan-compiler": "<10.0.0-beta17",
"symplify\/phpstan-latte-rules": "<10.0.0-beta17",
"symplify\/phpstan-twig-rules": "<10.0.0-beta17",
"symplify\/easy-parallel": "<10.0.0-beta17",
"symplify\/neon-config-dumper": "<10.0.0-beta17"
},
"minimum-stability": "dev",
"prefer-stable": true

View File

@ -6,9 +6,9 @@
"require": {
"php": ">=8.0",
"nette\/utils": "^3.2",
"symfony\/config": "^5.3|^6.0",
"symfony\/dependency-injection": "^5.3|^6.0",
"symfony\/filesystem": "^5.3|^6.0",
"symfony\/config": "^5.4|^6.0",
"symfony\/dependency-injection": "^5.4|^6.0",
"symfony\/filesystem": "^5.4|^6.0",
"symplify\/package-builder": "^10.0",
"symplify\/symplify-kernel": "^10.0",
"symplify\/smart-file-system": "^10.0"
@ -32,35 +32,36 @@
}
},
"conflict": {
"symplify\/astral": "<10.0.0-beta15",
"symplify\/easy-coding-standard": "<10.0.0-beta15",
"symplify\/phpstan-rules": "<10.0.0-beta15",
"symplify\/easy-testing": "<10.0.0-beta15",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta15",
"symplify\/symfony-php-config": "<10.0.0-beta15",
"symplify\/simple-php-doc-parser": "<10.0.0-beta15",
"symplify\/php-config-printer": "<10.0.0-beta15",
"symplify\/console-color-diff": "<10.0.0-beta15",
"symplify\/autowire-array-parameter": "<10.0.0-beta15",
"symplify\/markdown-diff": "<10.0.0-beta15",
"symplify\/amnesia": "<10.0.0-beta15",
"symplify\/phpstan-extensions": "<10.0.0-beta15",
"symplify\/rule-doc-generator": "<10.0.0-beta15",
"symplify\/vendor-patches": "<10.0.0-beta15",
"symplify\/skipper": "<10.0.0-beta15",
"symplify\/symfony-static-dumper": "<10.0.0-beta15",
"symplify\/git-wrapper": "<10.0.0-beta15",
"symplify\/astral": "<10.0.0-beta17",
"symplify\/easy-coding-standard": "<10.0.0-beta17",
"symplify\/phpstan-rules": "<10.0.0-beta17",
"symplify\/easy-testing": "<10.0.0-beta17",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta17",
"symplify\/symfony-php-config": "<10.0.0-beta17",
"symplify\/simple-php-doc-parser": "<10.0.0-beta17",
"symplify\/php-config-printer": "<10.0.0-beta17",
"symplify\/console-color-diff": "<10.0.0-beta17",
"symplify\/autowire-array-parameter": "<10.0.0-beta17",
"symplify\/markdown-diff": "<10.0.0-beta17",
"symplify\/amnesia": "<10.0.0-beta17",
"symplify\/phpstan-extensions": "<10.0.0-beta17",
"symplify\/rule-doc-generator": "<10.0.0-beta17",
"symplify\/vendor-patches": "<10.0.0-beta17",
"symplify\/skipper": "<10.0.0-beta17",
"symplify\/symfony-static-dumper": "<10.0.0-beta17",
"symplify\/git-wrapper": "<10.0.0-beta17",
"symplify\/symplify-kernel": "<9.4.70",
"symplify\/monorepo-builder": "<10.0.0-beta15",
"symplify\/config-transformer": "<10.0.0-beta15",
"symplify\/easy-ci": "<10.0.0-beta15",
"symplify\/coding-standard": "<10.0.0-beta15",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta15",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta15",
"symplify\/template-phpstan-compiler": "<10.0.0-beta15",
"symplify\/phpstan-latte-rules": "<10.0.0-beta15",
"symplify\/phpstan-twig-rules": "<10.0.0-beta15",
"symplify\/easy-parallel": "<10.0.0-beta15"
"symplify\/monorepo-builder": "<10.0.0-beta17",
"symplify\/config-transformer": "<10.0.0-beta17",
"symplify\/easy-ci": "<10.0.0-beta17",
"symplify\/coding-standard": "<10.0.0-beta17",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta17",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta17",
"symplify\/template-phpstan-compiler": "<10.0.0-beta17",
"symplify\/phpstan-latte-rules": "<10.0.0-beta17",
"symplify\/phpstan-twig-rules": "<10.0.0-beta17",
"symplify\/easy-parallel": "<10.0.0-beta17",
"symplify\/neon-config-dumper": "<10.0.0-beta17"
},
"minimum-stability": "dev",
"prefer-stable": true

View File

@ -5,9 +5,9 @@
"require": {
"php": ">=8.0",
"nette\/utils": "^3.2",
"symfony\/console": "^5.3|^6.0",
"symfony\/console": "^5.4|^6.0",
"sebastian\/diff": "^4.0",
"symfony\/dependency-injection": "^5.3|^6.0",
"symfony\/dependency-injection": "^5.4|^6.0",
"symplify\/package-builder": "^10.0"
},
"require-dev": {
@ -29,36 +29,37 @@
}
},
"conflict": {
"symplify\/astral": "<10.0.0-beta15",
"symplify\/composer-json-manipulator": "<10.0.0-beta15",
"symplify\/easy-coding-standard": "<10.0.0-beta15",
"symplify\/phpstan-rules": "<10.0.0-beta15",
"symplify\/easy-testing": "<10.0.0-beta15",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta15",
"symplify\/symfony-php-config": "<10.0.0-beta15",
"symplify\/simple-php-doc-parser": "<10.0.0-beta15",
"symplify\/php-config-printer": "<10.0.0-beta15",
"symplify\/autowire-array-parameter": "<10.0.0-beta15",
"symplify\/markdown-diff": "<10.0.0-beta15",
"symplify\/amnesia": "<10.0.0-beta15",
"symplify\/phpstan-extensions": "<10.0.0-beta15",
"symplify\/rule-doc-generator": "<10.0.0-beta15",
"symplify\/vendor-patches": "<10.0.0-beta15",
"symplify\/skipper": "<10.0.0-beta15",
"symplify\/smart-file-system": "<10.0.0-beta15",
"symplify\/symfony-static-dumper": "<10.0.0-beta15",
"symplify\/git-wrapper": "<10.0.0-beta15",
"symplify\/symplify-kernel": "<10.0.0-beta15",
"symplify\/monorepo-builder": "<10.0.0-beta15",
"symplify\/config-transformer": "<10.0.0-beta15",
"symplify\/easy-ci": "<10.0.0-beta15",
"symplify\/coding-standard": "<10.0.0-beta15",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta15",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta15",
"symplify\/template-phpstan-compiler": "<10.0.0-beta15",
"symplify\/phpstan-latte-rules": "<10.0.0-beta15",
"symplify\/phpstan-twig-rules": "<10.0.0-beta15",
"symplify\/easy-parallel": "<10.0.0-beta15"
"symplify\/astral": "<10.0.0-beta17",
"symplify\/composer-json-manipulator": "<10.0.0-beta17",
"symplify\/easy-coding-standard": "<10.0.0-beta17",
"symplify\/phpstan-rules": "<10.0.0-beta17",
"symplify\/easy-testing": "<10.0.0-beta17",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta17",
"symplify\/symfony-php-config": "<10.0.0-beta17",
"symplify\/simple-php-doc-parser": "<10.0.0-beta17",
"symplify\/php-config-printer": "<10.0.0-beta17",
"symplify\/autowire-array-parameter": "<10.0.0-beta17",
"symplify\/markdown-diff": "<10.0.0-beta17",
"symplify\/amnesia": "<10.0.0-beta17",
"symplify\/phpstan-extensions": "<10.0.0-beta17",
"symplify\/rule-doc-generator": "<10.0.0-beta17",
"symplify\/vendor-patches": "<10.0.0-beta17",
"symplify\/skipper": "<10.0.0-beta17",
"symplify\/smart-file-system": "<10.0.0-beta17",
"symplify\/symfony-static-dumper": "<10.0.0-beta17",
"symplify\/git-wrapper": "<10.0.0-beta17",
"symplify\/symplify-kernel": "<10.0.0-beta17",
"symplify\/monorepo-builder": "<10.0.0-beta17",
"symplify\/config-transformer": "<10.0.0-beta17",
"symplify\/easy-ci": "<10.0.0-beta17",
"symplify\/coding-standard": "<10.0.0-beta17",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta17",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta17",
"symplify\/template-phpstan-compiler": "<10.0.0-beta17",
"symplify\/phpstan-latte-rules": "<10.0.0-beta17",
"symplify\/phpstan-twig-rules": "<10.0.0-beta17",
"symplify\/easy-parallel": "<10.0.0-beta17",
"symplify\/neon-config-dumper": "<10.0.0-beta17"
},
"minimum-stability": "dev",
"prefer-stable": true

View File

@ -8,7 +8,7 @@
"react\/child-process": "^0.6.3",
"react\/event-loop": "^1.2",
"react\/socket": "^1.9",
"symfony\/console": "^5.3|^6.0",
"symfony\/console": "^5.4|^6.0",
"symplify\/package-builder": "^10.0"
},
"require-dev": {
@ -33,36 +33,37 @@
"platform-check": false
},
"conflict": {
"symplify\/astral": "<10.0.0-beta15",
"symplify\/easy-coding-standard": "<10.0.0-beta15",
"symplify\/phpstan-rules": "<10.0.0-beta15",
"symplify\/easy-testing": "<10.0.0-beta15",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta15",
"symplify\/symfony-php-config": "<10.0.0-beta15",
"symplify\/simple-php-doc-parser": "<10.0.0-beta15",
"symplify\/php-config-printer": "<10.0.0-beta15",
"symplify\/autowire-array-parameter": "<10.0.0-beta15",
"symplify\/markdown-diff": "<10.0.0-beta15",
"symplify\/amnesia": "<10.0.0-beta15",
"symplify\/phpstan-extensions": "<10.0.0-beta15",
"symplify\/rule-doc-generator": "<10.0.0-beta15",
"symplify\/vendor-patches": "<10.0.0-beta15",
"symplify\/skipper": "<10.0.0-beta15",
"symplify\/symfony-static-dumper": "<10.0.0-beta15",
"symplify\/git-wrapper": "<10.0.0-beta15",
"symplify\/config-transformer": "<10.0.0-beta15",
"symplify\/easy-ci": "<10.0.0-beta15",
"symplify\/coding-standard": "<10.0.0-beta15",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta15",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta15",
"symplify\/template-phpstan-compiler": "<10.0.0-beta15",
"symplify\/phpstan-latte-rules": "<10.0.0-beta15",
"symplify\/phpstan-twig-rules": "<10.0.0-beta15",
"symplify\/composer-json-manipulator": "<10.0.0-beta15",
"symplify\/smart-file-system": "<10.0.0-beta15",
"symplify\/monorepo-builder": "<10.0.0-beta15",
"symplify\/console-color-diff": "<10.0.0-beta15",
"symplify\/symplify-kernel": "<10.0.0-beta15"
"symplify\/astral": "<10.0.0-beta17",
"symplify\/easy-coding-standard": "<10.0.0-beta17",
"symplify\/phpstan-rules": "<10.0.0-beta17",
"symplify\/easy-testing": "<10.0.0-beta17",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta17",
"symplify\/symfony-php-config": "<10.0.0-beta17",
"symplify\/simple-php-doc-parser": "<10.0.0-beta17",
"symplify\/php-config-printer": "<10.0.0-beta17",
"symplify\/autowire-array-parameter": "<10.0.0-beta17",
"symplify\/markdown-diff": "<10.0.0-beta17",
"symplify\/amnesia": "<10.0.0-beta17",
"symplify\/phpstan-extensions": "<10.0.0-beta17",
"symplify\/rule-doc-generator": "<10.0.0-beta17",
"symplify\/vendor-patches": "<10.0.0-beta17",
"symplify\/skipper": "<10.0.0-beta17",
"symplify\/symfony-static-dumper": "<10.0.0-beta17",
"symplify\/git-wrapper": "<10.0.0-beta17",
"symplify\/config-transformer": "<10.0.0-beta17",
"symplify\/easy-ci": "<10.0.0-beta17",
"symplify\/coding-standard": "<10.0.0-beta17",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta17",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta17",
"symplify\/template-phpstan-compiler": "<10.0.0-beta17",
"symplify\/phpstan-latte-rules": "<10.0.0-beta17",
"symplify\/phpstan-twig-rules": "<10.0.0-beta17",
"symplify\/composer-json-manipulator": "<10.0.0-beta17",
"symplify\/smart-file-system": "<10.0.0-beta17",
"symplify\/monorepo-builder": "<10.0.0-beta17",
"symplify\/console-color-diff": "<10.0.0-beta17",
"symplify\/symplify-kernel": "<10.0.0-beta17",
"symplify\/neon-config-dumper": "<10.0.0-beta17"
},
"minimum-stability": "dev",
"prefer-stable": true

View File

@ -9,9 +9,9 @@
"require": {
"php": ">=8.0",
"nette\/utils": "^3.2",
"symfony\/finder": "^5.3|^6.0",
"symfony\/console": "^5.3|^6.0",
"symfony\/dependency-injection": "^5.3|^6.0",
"symfony\/finder": "^5.4|^6.0",
"symfony\/console": "^5.4|^6.0",
"symfony\/dependency-injection": "^5.4|^6.0",
"symplify\/package-builder": "^10.0",
"symplify\/smart-file-system": "^10.0",
"symplify\/symplify-kernel": "^10.0"
@ -35,34 +35,35 @@
}
},
"conflict": {
"symplify\/astral": "<10.0.0-beta15",
"symplify\/composer-json-manipulator": "<10.0.0-beta15",
"symplify\/easy-coding-standard": "<10.0.0-beta15",
"symplify\/phpstan-rules": "<10.0.0-beta15",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta15",
"symplify\/symfony-php-config": "<10.0.0-beta15",
"symplify\/simple-php-doc-parser": "<10.0.0-beta15",
"symplify\/php-config-printer": "<10.0.0-beta15",
"symplify\/console-color-diff": "<10.0.0-beta15",
"symplify\/autowire-array-parameter": "<10.0.0-beta15",
"symplify\/markdown-diff": "<10.0.0-beta15",
"symplify\/amnesia": "<10.0.0-beta15",
"symplify\/phpstan-extensions": "<10.0.0-beta15",
"symplify\/rule-doc-generator": "<10.0.0-beta15",
"symplify\/vendor-patches": "<10.0.0-beta15",
"symplify\/skipper": "<10.0.0-beta15",
"symplify\/symfony-static-dumper": "<10.0.0-beta15",
"symplify\/git-wrapper": "<10.0.0-beta15",
"symplify\/monorepo-builder": "<10.0.0-beta15",
"symplify\/config-transformer": "<10.0.0-beta15",
"symplify\/easy-ci": "<10.0.0-beta15",
"symplify\/coding-standard": "<10.0.0-beta15",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta15",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta15",
"symplify\/template-phpstan-compiler": "<10.0.0-beta15",
"symplify\/phpstan-latte-rules": "<10.0.0-beta15",
"symplify\/phpstan-twig-rules": "<10.0.0-beta15",
"symplify\/easy-parallel": "<10.0.0-beta15"
"symplify\/astral": "<10.0.0-beta17",
"symplify\/composer-json-manipulator": "<10.0.0-beta17",
"symplify\/easy-coding-standard": "<10.0.0-beta17",
"symplify\/phpstan-rules": "<10.0.0-beta17",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta17",
"symplify\/symfony-php-config": "<10.0.0-beta17",
"symplify\/simple-php-doc-parser": "<10.0.0-beta17",
"symplify\/php-config-printer": "<10.0.0-beta17",
"symplify\/console-color-diff": "<10.0.0-beta17",
"symplify\/autowire-array-parameter": "<10.0.0-beta17",
"symplify\/markdown-diff": "<10.0.0-beta17",
"symplify\/amnesia": "<10.0.0-beta17",
"symplify\/phpstan-extensions": "<10.0.0-beta17",
"symplify\/rule-doc-generator": "<10.0.0-beta17",
"symplify\/vendor-patches": "<10.0.0-beta17",
"symplify\/skipper": "<10.0.0-beta17",
"symplify\/symfony-static-dumper": "<10.0.0-beta17",
"symplify\/git-wrapper": "<10.0.0-beta17",
"symplify\/monorepo-builder": "<10.0.0-beta17",
"symplify\/config-transformer": "<10.0.0-beta17",
"symplify\/easy-ci": "<10.0.0-beta17",
"symplify\/coding-standard": "<10.0.0-beta17",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta17",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta17",
"symplify\/template-phpstan-compiler": "<10.0.0-beta17",
"symplify\/phpstan-latte-rules": "<10.0.0-beta17",
"symplify\/phpstan-twig-rules": "<10.0.0-beta17",
"symplify\/easy-parallel": "<10.0.0-beta17",
"symplify\/neon-config-dumper": "<10.0.0-beta17"
},
"minimum-stability": "dev",
"prefer-stable": true

View File

@ -5,14 +5,12 @@ namespace RectorPrefix20211206;
use RectorPrefix20211206\Symfony\Component\Console\Application;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use RectorPrefix20211206\Symplify\EasyTesting\Console\EasyTestingConsoleApplication;
use RectorPrefix20211206\Symplify\PackageBuilder\Console\Command\CommandNaming;
use RectorPrefix20211206\Symplify\EasyTesting\Command\ValidateFixtureSkipNamingCommand;
use function RectorPrefix20211206\Symfony\Component\DependencyInjection\Loader\Configurator\service;
return static function (\Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator $containerConfigurator) : void {
$services = $containerConfigurator->services();
$services->defaults()->public()->autowire()->autoconfigure();
$services->load('RectorPrefix20211206\Symplify\\EasyTesting\\', __DIR__ . '/../src')->exclude([__DIR__ . '/../src/DataProvider', __DIR__ . '/../src/Kernel', __DIR__ . '/../src/ValueObject']);
// console
$services->set(\RectorPrefix20211206\Symplify\EasyTesting\Console\EasyTestingConsoleApplication::class);
$services->alias(\RectorPrefix20211206\Symfony\Component\Console\Application::class, \RectorPrefix20211206\Symplify\EasyTesting\Console\EasyTestingConsoleApplication::class);
$services->set(\RectorPrefix20211206\Symplify\PackageBuilder\Console\Command\CommandNaming::class);
$services->set(\RectorPrefix20211206\Symfony\Component\Console\Application::class)->call('add', [\RectorPrefix20211206\Symfony\Component\DependencyInjection\Loader\Configurator\service(\RectorPrefix20211206\Symplify\EasyTesting\Command\ValidateFixtureSkipNamingCommand::class)]);
};

View File

@ -28,6 +28,7 @@ final class ValidateFixtureSkipNamingCommand extends \RectorPrefix20211206\Sympl
}
protected function configure() : void
{
$this->setName('validate-fixture-skip-naming');
$this->addArgument(\RectorPrefix20211206\Symplify\EasyTesting\ValueObject\Option::SOURCE, \RectorPrefix20211206\Symfony\Component\Console\Input\InputArgument::REQUIRED | \RectorPrefix20211206\Symfony\Component\Console\Input\InputArgument::IS_ARRAY, 'Paths to analyse');
$this->setDescription('Check that skipped fixture files (without `-----` separator) have a "skip" prefix');
}

View File

@ -1,23 +0,0 @@
<?php
declare (strict_types=1);
namespace RectorPrefix20211206\Symplify\EasyTesting\Console;
use RectorPrefix20211206\Symfony\Component\Console\Application;
use RectorPrefix20211206\Symfony\Component\Console\Command\Command;
use RectorPrefix20211206\Symplify\PackageBuilder\Console\Command\CommandNaming;
final class EasyTestingConsoleApplication extends \RectorPrefix20211206\Symfony\Component\Console\Application
{
/**
* @param Command[] $commands
*/
public function __construct(\RectorPrefix20211206\Symplify\PackageBuilder\Console\Command\CommandNaming $commandNaming, array $commands)
{
foreach ($commands as $command) {
$commandName = $commandNaming->resolveFromCommand($command);
$command->setName($commandName);
$this->add($command);
}
parent::__construct('Easy Testing');
}
}

View File

@ -5,10 +5,10 @@
"require": {
"php": ">=8.0",
"nette\/utils": "^3.2",
"symfony\/config": "^5.3|^6.0",
"symfony\/console": "^5.3|^6.0",
"symfony\/dependency-injection": "^5.3|^6.0",
"symfony\/finder": "^5.3|^6.0",
"symfony\/config": "^5.4|^6.0",
"symfony\/console": "^5.4|^6.0",
"symfony\/dependency-injection": "^5.4|^6.0",
"symfony\/finder": "^5.4|^6.0",
"symplify\/symplify-kernel": "^10.0",
"symplify\/easy-testing": "^10.0",
"nette\/neon": "^3.3.2"
@ -32,35 +32,36 @@
}
},
"conflict": {
"symplify\/astral": "<10.0.0-beta15",
"symplify\/composer-json-manipulator": "<10.0.0-beta15",
"symplify\/easy-coding-standard": "<10.0.0-beta15",
"symplify\/phpstan-rules": "<10.0.0-beta15",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta15",
"symplify\/symfony-php-config": "<10.0.0-beta15",
"symplify\/simple-php-doc-parser": "<10.0.0-beta15",
"symplify\/php-config-printer": "<10.0.0-beta15",
"symplify\/console-color-diff": "<10.0.0-beta15",
"symplify\/autowire-array-parameter": "<10.0.0-beta15",
"symplify\/markdown-diff": "<10.0.0-beta15",
"symplify\/amnesia": "<10.0.0-beta15",
"symplify\/phpstan-extensions": "<10.0.0-beta15",
"symplify\/rule-doc-generator": "<10.0.0-beta15",
"symplify\/vendor-patches": "<10.0.0-beta15",
"symplify\/skipper": "<10.0.0-beta15",
"symplify\/smart-file-system": "<10.0.0-beta15",
"symplify\/symfony-static-dumper": "<10.0.0-beta15",
"symplify\/git-wrapper": "<10.0.0-beta15",
"symplify\/monorepo-builder": "<10.0.0-beta15",
"symplify\/config-transformer": "<10.0.0-beta15",
"symplify\/easy-ci": "<10.0.0-beta15",
"symplify\/coding-standard": "<10.0.0-beta15",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta15",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta15",
"symplify\/template-phpstan-compiler": "<10.0.0-beta15",
"symplify\/phpstan-latte-rules": "<10.0.0-beta15",
"symplify\/phpstan-twig-rules": "<10.0.0-beta15",
"symplify\/easy-parallel": "<10.0.0-beta15"
"symplify\/astral": "<10.0.0-beta17",
"symplify\/composer-json-manipulator": "<10.0.0-beta17",
"symplify\/easy-coding-standard": "<10.0.0-beta17",
"symplify\/phpstan-rules": "<10.0.0-beta17",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta17",
"symplify\/symfony-php-config": "<10.0.0-beta17",
"symplify\/simple-php-doc-parser": "<10.0.0-beta17",
"symplify\/php-config-printer": "<10.0.0-beta17",
"symplify\/console-color-diff": "<10.0.0-beta17",
"symplify\/autowire-array-parameter": "<10.0.0-beta17",
"symplify\/markdown-diff": "<10.0.0-beta17",
"symplify\/amnesia": "<10.0.0-beta17",
"symplify\/phpstan-extensions": "<10.0.0-beta17",
"symplify\/rule-doc-generator": "<10.0.0-beta17",
"symplify\/vendor-patches": "<10.0.0-beta17",
"symplify\/skipper": "<10.0.0-beta17",
"symplify\/smart-file-system": "<10.0.0-beta17",
"symplify\/symfony-static-dumper": "<10.0.0-beta17",
"symplify\/git-wrapper": "<10.0.0-beta17",
"symplify\/monorepo-builder": "<10.0.0-beta17",
"symplify\/config-transformer": "<10.0.0-beta17",
"symplify\/easy-ci": "<10.0.0-beta17",
"symplify\/coding-standard": "<10.0.0-beta17",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta17",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta17",
"symplify\/template-phpstan-compiler": "<10.0.0-beta17",
"symplify\/phpstan-latte-rules": "<10.0.0-beta17",
"symplify\/phpstan-twig-rules": "<10.0.0-beta17",
"symplify\/easy-parallel": "<10.0.0-beta17",
"symplify\/neon-config-dumper": "<10.0.0-beta17"
},
"minimum-stability": "dev",
"prefer-stable": true

View File

@ -26,18 +26,12 @@ final class NeonPrinter
*/
public function printNeon(array $phpStanNeon) : string
{
$neonContent = \RectorPrefix20211206\Nette\Neon\Neon::encode($phpStanNeon, \RectorPrefix20211206\Nette\Neon\Encoder::BLOCK);
// tabs to spaces for consistency
$neonContent = $this->replaceTabsWithSpaces($neonContent);
$neonContent = \RectorPrefix20211206\Nette\Neon\Neon::encode($phpStanNeon, \RectorPrefix20211206\Nette\Neon\Encoder::BLOCK, ' ');
// inline single tags, dummy
$neonContent = $this->inlineSingleTags($neonContent);
$neonContent = $this->fixDoubleSpaceInArguments($neonContent);
return \rtrim($neonContent) . \PHP_EOL;
}
private function replaceTabsWithSpaces(string $neonContent) : string
{
return \RectorPrefix20211206\Nette\Utils\Strings::replace($neonContent, '#\\t#', ' ');
}
private function inlineSingleTags(string $neonContent) : string
{
return \RectorPrefix20211206\Nette\Utils\Strings::replace($neonContent, self::TAGS_REGEX, 'tags: [$1]');

View File

@ -18,37 +18,38 @@
}
},
"conflict": {
"symplify\/astral": "<10.0.0-beta15",
"symplify\/composer-json-manipulator": "<10.0.0-beta15",
"symplify\/easy-coding-standard": "<10.0.0-beta15",
"symplify\/phpstan-rules": "<10.0.0-beta15",
"symplify\/easy-testing": "<10.0.0-beta15",
"symplify\/symfony-php-config": "<10.0.0-beta15",
"symplify\/simple-php-doc-parser": "<10.0.0-beta15",
"symplify\/php-config-printer": "<10.0.0-beta15",
"symplify\/console-color-diff": "<10.0.0-beta15",
"symplify\/autowire-array-parameter": "<10.0.0-beta15",
"symplify\/markdown-diff": "<10.0.0-beta15",
"symplify\/package-builder": "<10.0.0-beta15",
"symplify\/amnesia": "<10.0.0-beta15",
"symplify\/phpstan-extensions": "<10.0.0-beta15",
"symplify\/rule-doc-generator": "<10.0.0-beta15",
"symplify\/vendor-patches": "<10.0.0-beta15",
"symplify\/skipper": "<10.0.0-beta15",
"symplify\/smart-file-system": "<10.0.0-beta15",
"symplify\/symfony-static-dumper": "<10.0.0-beta15",
"symplify\/git-wrapper": "<10.0.0-beta15",
"symplify\/symplify-kernel": "<10.0.0-beta15",
"symplify\/monorepo-builder": "<10.0.0-beta15",
"symplify\/config-transformer": "<10.0.0-beta15",
"symplify\/easy-ci": "<10.0.0-beta15",
"symplify\/coding-standard": "<10.0.0-beta15",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta15",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta15",
"symplify\/template-phpstan-compiler": "<10.0.0-beta15",
"symplify\/phpstan-latte-rules": "<10.0.0-beta15",
"symplify\/phpstan-twig-rules": "<10.0.0-beta15",
"symplify\/easy-parallel": "<10.0.0-beta15"
"symplify\/astral": "<10.0.0-beta17",
"symplify\/composer-json-manipulator": "<10.0.0-beta17",
"symplify\/easy-coding-standard": "<10.0.0-beta17",
"symplify\/phpstan-rules": "<10.0.0-beta17",
"symplify\/easy-testing": "<10.0.0-beta17",
"symplify\/symfony-php-config": "<10.0.0-beta17",
"symplify\/simple-php-doc-parser": "<10.0.0-beta17",
"symplify\/php-config-printer": "<10.0.0-beta17",
"symplify\/console-color-diff": "<10.0.0-beta17",
"symplify\/autowire-array-parameter": "<10.0.0-beta17",
"symplify\/markdown-diff": "<10.0.0-beta17",
"symplify\/package-builder": "<10.0.0-beta17",
"symplify\/amnesia": "<10.0.0-beta17",
"symplify\/phpstan-extensions": "<10.0.0-beta17",
"symplify\/rule-doc-generator": "<10.0.0-beta17",
"symplify\/vendor-patches": "<10.0.0-beta17",
"symplify\/skipper": "<10.0.0-beta17",
"symplify\/smart-file-system": "<10.0.0-beta17",
"symplify\/symfony-static-dumper": "<10.0.0-beta17",
"symplify\/git-wrapper": "<10.0.0-beta17",
"symplify\/symplify-kernel": "<10.0.0-beta17",
"symplify\/monorepo-builder": "<10.0.0-beta17",
"symplify\/config-transformer": "<10.0.0-beta17",
"symplify\/easy-ci": "<10.0.0-beta17",
"symplify\/coding-standard": "<10.0.0-beta17",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta17",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta17",
"symplify\/template-phpstan-compiler": "<10.0.0-beta17",
"symplify\/phpstan-latte-rules": "<10.0.0-beta17",
"symplify\/phpstan-twig-rules": "<10.0.0-beta17",
"symplify\/easy-parallel": "<10.0.0-beta17",
"symplify\/neon-config-dumper": "<10.0.0-beta17"
},
"minimum-stability": "dev",
"prefer-stable": true

View File

@ -10,5 +10,5 @@ interface RuleCodeSamplePrinterInterface
/**
* @return string[]
*/
public function print(\Symplify\RuleDocGenerator\Contract\CodeSampleInterface $codeSample, \Symplify\RuleDocGenerator\ValueObject\RuleDefinition $ruleDefinition) : array;
public function print(\Symplify\RuleDocGenerator\Contract\CodeSampleInterface $codeSample, \Symplify\RuleDocGenerator\ValueObject\RuleDefinition $ruleDefinition, bool $shouldUseConfigureMethod) : array;
}

View File

@ -5,8 +5,8 @@
"require": {
"php": ">=8.0",
"phpstan\/phpdoc-parser": "^1.2",
"symfony\/dependency-injection": "^5.3|^6.0",
"symfony\/config": "^5.3|^6.0",
"symfony\/dependency-injection": "^5.4|^6.0",
"symfony\/config": "^5.4|^6.0",
"symplify\/package-builder": "^10.0"
},
"require-dev": {
@ -29,36 +29,37 @@
}
},
"conflict": {
"symplify\/astral": "<10.0.0-beta15",
"symplify\/composer-json-manipulator": "<10.0.0-beta15",
"symplify\/easy-coding-standard": "<10.0.0-beta15",
"symplify\/phpstan-rules": "<10.0.0-beta15",
"symplify\/easy-testing": "<10.0.0-beta15",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta15",
"symplify\/symfony-php-config": "<10.0.0-beta15",
"symplify\/php-config-printer": "<10.0.0-beta15",
"symplify\/console-color-diff": "<10.0.0-beta15",
"symplify\/autowire-array-parameter": "<10.0.0-beta15",
"symplify\/markdown-diff": "<10.0.0-beta15",
"symplify\/amnesia": "<10.0.0-beta15",
"symplify\/phpstan-extensions": "<10.0.0-beta15",
"symplify\/rule-doc-generator": "<10.0.0-beta15",
"symplify\/vendor-patches": "<10.0.0-beta15",
"symplify\/skipper": "<10.0.0-beta15",
"symplify\/smart-file-system": "<10.0.0-beta15",
"symplify\/symfony-static-dumper": "<10.0.0-beta15",
"symplify\/git-wrapper": "<10.0.0-beta15",
"symplify\/symplify-kernel": "<10.0.0-beta15",
"symplify\/monorepo-builder": "<10.0.0-beta15",
"symplify\/config-transformer": "<10.0.0-beta15",
"symplify\/easy-ci": "<10.0.0-beta15",
"symplify\/coding-standard": "<10.0.0-beta15",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta15",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta15",
"symplify\/template-phpstan-compiler": "<10.0.0-beta15",
"symplify\/phpstan-latte-rules": "<10.0.0-beta15",
"symplify\/phpstan-twig-rules": "<10.0.0-beta15",
"symplify\/easy-parallel": "<10.0.0-beta15"
"symplify\/astral": "<10.0.0-beta17",
"symplify\/composer-json-manipulator": "<10.0.0-beta17",
"symplify\/easy-coding-standard": "<10.0.0-beta17",
"symplify\/phpstan-rules": "<10.0.0-beta17",
"symplify\/easy-testing": "<10.0.0-beta17",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta17",
"symplify\/symfony-php-config": "<10.0.0-beta17",
"symplify\/php-config-printer": "<10.0.0-beta17",
"symplify\/console-color-diff": "<10.0.0-beta17",
"symplify\/autowire-array-parameter": "<10.0.0-beta17",
"symplify\/markdown-diff": "<10.0.0-beta17",
"symplify\/amnesia": "<10.0.0-beta17",
"symplify\/phpstan-extensions": "<10.0.0-beta17",
"symplify\/rule-doc-generator": "<10.0.0-beta17",
"symplify\/vendor-patches": "<10.0.0-beta17",
"symplify\/skipper": "<10.0.0-beta17",
"symplify\/smart-file-system": "<10.0.0-beta17",
"symplify\/symfony-static-dumper": "<10.0.0-beta17",
"symplify\/git-wrapper": "<10.0.0-beta17",
"symplify\/symplify-kernel": "<10.0.0-beta17",
"symplify\/monorepo-builder": "<10.0.0-beta17",
"symplify\/config-transformer": "<10.0.0-beta17",
"symplify\/easy-ci": "<10.0.0-beta17",
"symplify\/coding-standard": "<10.0.0-beta17",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta17",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta17",
"symplify\/template-phpstan-compiler": "<10.0.0-beta17",
"symplify\/phpstan-latte-rules": "<10.0.0-beta17",
"symplify\/phpstan-twig-rules": "<10.0.0-beta17",
"symplify\/easy-parallel": "<10.0.0-beta17",
"symplify\/neon-config-dumper": "<10.0.0-beta17"
},
"minimum-stability": "dev",
"prefer-stable": true

View File

@ -5,10 +5,10 @@
"require": {
"php": ">=8.0",
"nette\/utils": "^3.2",
"symfony\/config": "^5.3|^6.0",
"symfony\/dependency-injection": "^5.3|^6.0",
"symfony\/finder": "^5.3|^6.0",
"symfony\/filesystem": "^5.3|^6.0",
"symfony\/config": "^5.4|^6.0",
"symfony\/dependency-injection": "^5.4|^6.0",
"symfony\/finder": "^5.4|^6.0",
"symfony\/filesystem": "^5.4|^6.0",
"symplify\/package-builder": "^10.0",
"symplify\/symplify-kernel": "^10.0",
"symplify\/smart-file-system": "^10.0"
@ -32,34 +32,35 @@
}
},
"conflict": {
"symplify\/astral": "<10.0.0-beta15",
"symplify\/composer-json-manipulator": "<10.0.0-beta15",
"symplify\/easy-coding-standard": "<10.0.0-beta15",
"symplify\/phpstan-rules": "<10.0.0-beta15",
"symplify\/easy-testing": "<10.0.0-beta15",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta15",
"symplify\/symfony-php-config": "<10.0.0-beta15",
"symplify\/simple-php-doc-parser": "<10.0.0-beta15",
"symplify\/php-config-printer": "<10.0.0-beta15",
"symplify\/console-color-diff": "<10.0.0-beta15",
"symplify\/autowire-array-parameter": "<10.0.0-beta15",
"symplify\/markdown-diff": "<10.0.0-beta15",
"symplify\/amnesia": "<10.0.0-beta15",
"symplify\/phpstan-extensions": "<10.0.0-beta15",
"symplify\/rule-doc-generator": "<10.0.0-beta15",
"symplify\/vendor-patches": "<10.0.0-beta15",
"symplify\/symfony-static-dumper": "<10.0.0-beta15",
"symplify\/git-wrapper": "<10.0.0-beta15",
"symplify\/monorepo-builder": "<10.0.0-beta15",
"symplify\/config-transformer": "<10.0.0-beta15",
"symplify\/easy-ci": "<10.0.0-beta15",
"symplify\/coding-standard": "<10.0.0-beta15",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta15",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta15",
"symplify\/template-phpstan-compiler": "<10.0.0-beta15",
"symplify\/phpstan-latte-rules": "<10.0.0-beta15",
"symplify\/phpstan-twig-rules": "<10.0.0-beta15",
"symplify\/easy-parallel": "<10.0.0-beta15"
"symplify\/astral": "<10.0.0-beta17",
"symplify\/composer-json-manipulator": "<10.0.0-beta17",
"symplify\/easy-coding-standard": "<10.0.0-beta17",
"symplify\/phpstan-rules": "<10.0.0-beta17",
"symplify\/easy-testing": "<10.0.0-beta17",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta17",
"symplify\/symfony-php-config": "<10.0.0-beta17",
"symplify\/simple-php-doc-parser": "<10.0.0-beta17",
"symplify\/php-config-printer": "<10.0.0-beta17",
"symplify\/console-color-diff": "<10.0.0-beta17",
"symplify\/autowire-array-parameter": "<10.0.0-beta17",
"symplify\/markdown-diff": "<10.0.0-beta17",
"symplify\/amnesia": "<10.0.0-beta17",
"symplify\/phpstan-extensions": "<10.0.0-beta17",
"symplify\/rule-doc-generator": "<10.0.0-beta17",
"symplify\/vendor-patches": "<10.0.0-beta17",
"symplify\/symfony-static-dumper": "<10.0.0-beta17",
"symplify\/git-wrapper": "<10.0.0-beta17",
"symplify\/monorepo-builder": "<10.0.0-beta17",
"symplify\/config-transformer": "<10.0.0-beta17",
"symplify\/easy-ci": "<10.0.0-beta17",
"symplify\/coding-standard": "<10.0.0-beta17",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta17",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta17",
"symplify\/template-phpstan-compiler": "<10.0.0-beta17",
"symplify\/phpstan-latte-rules": "<10.0.0-beta17",
"symplify\/phpstan-twig-rules": "<10.0.0-beta17",
"symplify\/easy-parallel": "<10.0.0-beta17",
"symplify\/neon-config-dumper": "<10.0.0-beta17"
},
"minimum-stability": "dev",
"prefer-stable": true

View File

@ -5,8 +5,8 @@
"require": {
"php": ">=8.0",
"nette\/utils": "^3.2",
"symfony\/finder": "^5.3|^6.0",
"symfony\/filesystem": "^5.3|^6.0"
"symfony\/finder": "^5.4|^6.0",
"symfony\/filesystem": "^5.4|^6.0"
},
"require-dev": {
"nette\/finder": "^2.5",
@ -28,37 +28,38 @@
}
},
"conflict": {
"symplify\/astral": "<10.0.0-beta15",
"symplify\/composer-json-manipulator": "<10.0.0-beta15",
"symplify\/easy-coding-standard": "<10.0.0-beta15",
"symplify\/phpstan-rules": "<10.0.0-beta15",
"symplify\/easy-testing": "<10.0.0-beta15",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta15",
"symplify\/symfony-php-config": "<10.0.0-beta15",
"symplify\/simple-php-doc-parser": "<10.0.0-beta15",
"symplify\/php-config-printer": "<10.0.0-beta15",
"symplify\/console-color-diff": "<10.0.0-beta15",
"symplify\/autowire-array-parameter": "<10.0.0-beta15",
"symplify\/markdown-diff": "<10.0.0-beta15",
"symplify\/package-builder": "<10.0.0-beta15",
"symplify\/amnesia": "<10.0.0-beta15",
"symplify\/phpstan-extensions": "<10.0.0-beta15",
"symplify\/rule-doc-generator": "<10.0.0-beta15",
"symplify\/vendor-patches": "<10.0.0-beta15",
"symplify\/skipper": "<10.0.0-beta15",
"symplify\/symfony-static-dumper": "<10.0.0-beta15",
"symplify\/git-wrapper": "<10.0.0-beta15",
"symplify\/symplify-kernel": "<10.0.0-beta15",
"symplify\/monorepo-builder": "<10.0.0-beta15",
"symplify\/config-transformer": "<10.0.0-beta15",
"symplify\/easy-ci": "<10.0.0-beta15",
"symplify\/coding-standard": "<10.0.0-beta15",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta15",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta15",
"symplify\/template-phpstan-compiler": "<10.0.0-beta15",
"symplify\/phpstan-latte-rules": "<10.0.0-beta15",
"symplify\/phpstan-twig-rules": "<10.0.0-beta15",
"symplify\/easy-parallel": "<10.0.0-beta15"
"symplify\/astral": "<10.0.0-beta17",
"symplify\/composer-json-manipulator": "<10.0.0-beta17",
"symplify\/easy-coding-standard": "<10.0.0-beta17",
"symplify\/phpstan-rules": "<10.0.0-beta17",
"symplify\/easy-testing": "<10.0.0-beta17",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta17",
"symplify\/symfony-php-config": "<10.0.0-beta17",
"symplify\/simple-php-doc-parser": "<10.0.0-beta17",
"symplify\/php-config-printer": "<10.0.0-beta17",
"symplify\/console-color-diff": "<10.0.0-beta17",
"symplify\/autowire-array-parameter": "<10.0.0-beta17",
"symplify\/markdown-diff": "<10.0.0-beta17",
"symplify\/package-builder": "<10.0.0-beta17",
"symplify\/amnesia": "<10.0.0-beta17",
"symplify\/phpstan-extensions": "<10.0.0-beta17",
"symplify\/rule-doc-generator": "<10.0.0-beta17",
"symplify\/vendor-patches": "<10.0.0-beta17",
"symplify\/skipper": "<10.0.0-beta17",
"symplify\/symfony-static-dumper": "<10.0.0-beta17",
"symplify\/git-wrapper": "<10.0.0-beta17",
"symplify\/symplify-kernel": "<10.0.0-beta17",
"symplify\/monorepo-builder": "<10.0.0-beta17",
"symplify\/config-transformer": "<10.0.0-beta17",
"symplify\/easy-ci": "<10.0.0-beta17",
"symplify\/coding-standard": "<10.0.0-beta17",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta17",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta17",
"symplify\/template-phpstan-compiler": "<10.0.0-beta17",
"symplify\/phpstan-latte-rules": "<10.0.0-beta17",
"symplify\/phpstan-twig-rules": "<10.0.0-beta17",
"symplify\/easy-parallel": "<10.0.0-beta17",
"symplify\/neon-config-dumper": "<10.0.0-beta17"
},
"minimum-stability": "dev",
"prefer-stable": true

View File

@ -4,7 +4,7 @@
"license": "MIT",
"require": {
"php": ">=8.0",
"symfony\/dependency-injection": "^5.3|^6.0",
"symfony\/dependency-injection": "^5.4|^6.0",
"symplify\/symplify-kernel": "^10.0",
"symplify\/package-builder": "^10.0"
},

View File

@ -4,8 +4,8 @@
"license": "MIT",
"require": {
"php": ">=8.0",
"symfony\/console": "^5.3|^6.0",
"symfony\/dependency-injection": "^5.3|^6.0",
"symfony\/console": "^5.4|^6.0",
"symfony\/dependency-injection": "^5.4|^6.0",
"symplify\/smart-file-system": "^10.0",
"symplify\/composer-json-manipulator": "^10.0",
"symplify\/autowire-array-parameter": "^10.0",
@ -27,33 +27,34 @@
}
},
"conflict": {
"symplify\/astral": "<10.0.0-beta15",
"symplify\/easy-coding-standard": "<10.0.0-beta15",
"symplify\/phpstan-rules": "<10.0.0-beta15",
"symplify\/easy-testing": "<10.0.0-beta15",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta15",
"symplify\/symfony-php-config": "<10.0.0-beta15",
"symplify\/simple-php-doc-parser": "<10.0.0-beta15",
"symplify\/php-config-printer": "<10.0.0-beta15",
"symplify\/console-color-diff": "<10.0.0-beta15",
"symplify\/markdown-diff": "<10.0.0-beta15",
"symplify\/amnesia": "<10.0.0-beta15",
"symplify\/phpstan-extensions": "<10.0.0-beta15",
"symplify\/rule-doc-generator": "<10.0.0-beta15",
"symplify\/vendor-patches": "<10.0.0-beta15",
"symplify\/skipper": "<10.0.0-beta15",
"symplify\/symfony-static-dumper": "<10.0.0-beta15",
"symplify\/git-wrapper": "<10.0.0-beta15",
"symplify\/monorepo-builder": "<10.0.0-beta15",
"symplify\/config-transformer": "<10.0.0-beta15",
"symplify\/easy-ci": "<10.0.0-beta15",
"symplify\/coding-standard": "<10.0.0-beta15",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta15",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta15",
"symplify\/template-phpstan-compiler": "<10.0.0-beta15",
"symplify\/phpstan-latte-rules": "<10.0.0-beta15",
"symplify\/phpstan-twig-rules": "<10.0.0-beta15",
"symplify\/easy-parallel": "<10.0.0-beta15"
"symplify\/astral": "<10.0.0-beta17",
"symplify\/easy-coding-standard": "<10.0.0-beta17",
"symplify\/phpstan-rules": "<10.0.0-beta17",
"symplify\/easy-testing": "<10.0.0-beta17",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta17",
"symplify\/symfony-php-config": "<10.0.0-beta17",
"symplify\/simple-php-doc-parser": "<10.0.0-beta17",
"symplify\/php-config-printer": "<10.0.0-beta17",
"symplify\/console-color-diff": "<10.0.0-beta17",
"symplify\/markdown-diff": "<10.0.0-beta17",
"symplify\/amnesia": "<10.0.0-beta17",
"symplify\/phpstan-extensions": "<10.0.0-beta17",
"symplify\/rule-doc-generator": "<10.0.0-beta17",
"symplify\/vendor-patches": "<10.0.0-beta17",
"symplify\/skipper": "<10.0.0-beta17",
"symplify\/symfony-static-dumper": "<10.0.0-beta17",
"symplify\/git-wrapper": "<10.0.0-beta17",
"symplify\/monorepo-builder": "<10.0.0-beta17",
"symplify\/config-transformer": "<10.0.0-beta17",
"symplify\/easy-ci": "<10.0.0-beta17",
"symplify\/coding-standard": "<10.0.0-beta17",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta17",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta17",
"symplify\/template-phpstan-compiler": "<10.0.0-beta17",
"symplify\/phpstan-latte-rules": "<10.0.0-beta17",
"symplify\/phpstan-twig-rules": "<10.0.0-beta17",
"symplify\/easy-parallel": "<10.0.0-beta17",
"symplify\/neon-config-dumper": "<10.0.0-beta17"
},
"minimum-stability": "dev",
"prefer-stable": true

View File

@ -82,7 +82,8 @@ final class KernelBootAndApplicationRun
if (\is_a($kernelClass, \RectorPrefix20211206\Symplify\SymplifyKernel\Contract\LightKernelInterface::class, \true)) {
return;
}
$errorMessage = \sprintf('Class "%s" must by type of "%s" or "%s"', $kernelClass, \RectorPrefix20211206\Symfony\Component\HttpKernel\KernelInterface::class, \RectorPrefix20211206\Symplify\SymplifyKernel\Contract\LightKernelInterface::class);
$currentValueType = \get_debug_type($kernelClass);
$errorMessage = \sprintf('Class "%s" must by type of "%s" or "%s". "%s" given', $kernelClass, \RectorPrefix20211206\Symfony\Component\HttpKernel\KernelInterface::class, \RectorPrefix20211206\Symplify\SymplifyKernel\Contract\LightKernelInterface::class, $currentValueType);
throw new \RectorPrefix20211206\Symplify\SymplifyKernel\Exception\BootException($errorMessage);
}
}

View File

@ -8,8 +8,8 @@
"require": {
"php": ">=8.0",
"nette\/utils": "^3.2",
"symfony\/console": "^5.3|^6.0",
"symfony\/dependency-injection": "^5.3|^6.0",
"symfony\/console": "^5.4|^6.0",
"symfony\/dependency-injection": "^5.4|^6.0",
"sebastian\/diff": "^4.0",
"cweagans\/composer-patches": "^1.7",
"symplify\/composer-json-manipulator": "^10.0",
@ -34,35 +34,36 @@
}
},
"conflict": {
"symplify\/astral": "<10.0.0-beta15",
"symplify\/easy-coding-standard": "<10.0.0-beta15",
"symplify\/phpstan-rules": "<10.0.0-beta15",
"symplify\/easy-testing": "<10.0.0-beta15",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta15",
"symplify\/symfony-php-config": "<10.0.0-beta15",
"symplify\/simple-php-doc-parser": "<10.0.0-beta15",
"symplify\/php-config-printer": "<10.0.0-beta15",
"symplify\/console-color-diff": "<10.0.0-beta15",
"symplify\/autowire-array-parameter": "<10.0.0-beta15",
"symplify\/markdown-diff": "<10.0.0-beta15",
"symplify\/package-builder": "<10.0.0-beta15",
"symplify\/amnesia": "<10.0.0-beta15",
"symplify\/phpstan-extensions": "<10.0.0-beta15",
"symplify\/rule-doc-generator": "<10.0.0-beta15",
"symplify\/skipper": "<10.0.0-beta15",
"symplify\/smart-file-system": "<10.0.0-beta15",
"symplify\/symfony-static-dumper": "<10.0.0-beta15",
"symplify\/git-wrapper": "<10.0.0-beta15",
"symplify\/monorepo-builder": "<10.0.0-beta15",
"symplify\/config-transformer": "<10.0.0-beta15",
"symplify\/easy-ci": "<10.0.0-beta15",
"symplify\/coding-standard": "<10.0.0-beta15",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta15",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta15",
"symplify\/template-phpstan-compiler": "<10.0.0-beta15",
"symplify\/phpstan-latte-rules": "<10.0.0-beta15",
"symplify\/phpstan-twig-rules": "<10.0.0-beta15",
"symplify\/easy-parallel": "<10.0.0-beta15"
"symplify\/astral": "<10.0.0-beta17",
"symplify\/easy-coding-standard": "<10.0.0-beta17",
"symplify\/phpstan-rules": "<10.0.0-beta17",
"symplify\/easy-testing": "<10.0.0-beta17",
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta17",
"symplify\/symfony-php-config": "<10.0.0-beta17",
"symplify\/simple-php-doc-parser": "<10.0.0-beta17",
"symplify\/php-config-printer": "<10.0.0-beta17",
"symplify\/console-color-diff": "<10.0.0-beta17",
"symplify\/autowire-array-parameter": "<10.0.0-beta17",
"symplify\/markdown-diff": "<10.0.0-beta17",
"symplify\/package-builder": "<10.0.0-beta17",
"symplify\/amnesia": "<10.0.0-beta17",
"symplify\/phpstan-extensions": "<10.0.0-beta17",
"symplify\/rule-doc-generator": "<10.0.0-beta17",
"symplify\/skipper": "<10.0.0-beta17",
"symplify\/smart-file-system": "<10.0.0-beta17",
"symplify\/symfony-static-dumper": "<10.0.0-beta17",
"symplify\/git-wrapper": "<10.0.0-beta17",
"symplify\/monorepo-builder": "<10.0.0-beta17",
"symplify\/config-transformer": "<10.0.0-beta17",
"symplify\/easy-ci": "<10.0.0-beta17",
"symplify\/coding-standard": "<10.0.0-beta17",
"symplify\/twig-phpstan-compiler": "<10.0.0-beta17",
"symplify\/latte-phpstan-compiler": "<10.0.0-beta17",
"symplify\/template-phpstan-compiler": "<10.0.0-beta17",
"symplify\/phpstan-latte-rules": "<10.0.0-beta17",
"symplify\/phpstan-twig-rules": "<10.0.0-beta17",
"symplify\/easy-parallel": "<10.0.0-beta17",
"symplify\/neon-config-dumper": "<10.0.0-beta17"
},
"minimum-stability": "dev",
"prefer-stable": true

View File

@ -8,10 +8,9 @@ use RectorPrefix20211206\SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder;
use RectorPrefix20211206\Symfony\Component\Console\Application;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use RectorPrefix20211206\Symplify\PackageBuilder\Composer\VendorDirProvider;
use RectorPrefix20211206\Symplify\PackageBuilder\Console\Command\CommandNaming;
use RectorPrefix20211206\Symplify\PackageBuilder\Yaml\ParametersMerger;
use RectorPrefix20211206\Symplify\SmartFileSystem\Json\JsonFileSystem;
use RectorPrefix20211206\Symplify\VendorPatches\Console\VendorPatchesConsoleApplication;
use RectorPrefix20211206\Symplify\VendorPatches\Command\GenerateCommand;
use function RectorPrefix20211206\Symfony\Component\DependencyInjection\Loader\Configurator\service;
return static function (\Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator $containerConfigurator) : void {
$services = $containerConfigurator->services();
@ -21,7 +20,6 @@ return static function (\Symfony\Component\DependencyInjection\Loader\Configurat
$services->set(\RectorPrefix20211206\SebastianBergmann\Diff\Differ::class)->args(['$outputBuilder' => \RectorPrefix20211206\Symfony\Component\DependencyInjection\Loader\Configurator\service(\RectorPrefix20211206\SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder::class)]);
$services->set(\RectorPrefix20211206\Symplify\PackageBuilder\Composer\VendorDirProvider::class);
$services->set(\RectorPrefix20211206\Symplify\SmartFileSystem\Json\JsonFileSystem::class);
$services->alias(\RectorPrefix20211206\Symfony\Component\Console\Application::class, \RectorPrefix20211206\Symplify\VendorPatches\Console\VendorPatchesConsoleApplication::class);
$services->set(\RectorPrefix20211206\Symplify\PackageBuilder\Console\Command\CommandNaming::class);
$services->set(\RectorPrefix20211206\Symfony\Component\Console\Application::class)->call('addCommands', [[\RectorPrefix20211206\Symfony\Component\DependencyInjection\Loader\Configurator\service(\RectorPrefix20211206\Symplify\VendorPatches\Command\GenerateCommand::class)]]);
$services->set(\RectorPrefix20211206\Symplify\PackageBuilder\Yaml\ParametersMerger::class);
};

View File

@ -7,6 +7,7 @@ use RectorPrefix20211206\Symfony\Component\Console\Input\InputInterface;
use RectorPrefix20211206\Symfony\Component\Console\Output\OutputInterface;
use RectorPrefix20211206\Symplify\PackageBuilder\Composer\VendorDirProvider;
use RectorPrefix20211206\Symplify\PackageBuilder\Console\Command\AbstractSymplifyCommand;
use RectorPrefix20211206\Symplify\PackageBuilder\Console\Command\CommandNaming;
use RectorPrefix20211206\Symplify\VendorPatches\Composer\ComposerPatchesConfigurationUpdater;
use RectorPrefix20211206\Symplify\VendorPatches\Console\GenerateCommandReporter;
use RectorPrefix20211206\Symplify\VendorPatches\Differ\PatchDiffer;
@ -50,6 +51,7 @@ final class GenerateCommand extends \RectorPrefix20211206\Symplify\PackageBuilde
}
protected function configure() : void
{
$this->setName(\RectorPrefix20211206\Symplify\PackageBuilder\Console\Command\CommandNaming::classToName(self::class));
$this->setDescription('Generate patches from /vendor directory');
}
/**

View File

@ -1,23 +0,0 @@
<?php
declare (strict_types=1);
namespace RectorPrefix20211206\Symplify\VendorPatches\Console;
use RectorPrefix20211206\Symfony\Component\Console\Application;
use RectorPrefix20211206\Symfony\Component\Console\Command\Command;
use RectorPrefix20211206\Symplify\PackageBuilder\Console\Command\CommandNaming;
final class VendorPatchesConsoleApplication extends \RectorPrefix20211206\Symfony\Component\Console\Application
{
/**
* @param Command[] $commands
*/
public function __construct(\RectorPrefix20211206\Symplify\PackageBuilder\Console\Command\CommandNaming $commandNaming, array $commands)
{
foreach ($commands as $command) {
$commandName = $commandNaming->resolveFromCommand($command);
$command->setName($commandName);
$this->add($command);
}
parent::__construct('Vendor Patches');
}
}