mirror of
https://github.com/rectorphp/rector.git
synced 2024-05-28 23:10:51 +00:00
Updated Rector to commit e2cc867255
e2cc867255
[PhpSpecToPHPUnit] Deprecate historical set, mostly for experimental in early days (#1901)
This commit is contained in:
parent
be1a72534c
commit
d7bd6b98d4
|
@ -1,27 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix20220303;
|
||||
|
||||
use Rector\PhpSpecToPHPUnit\Rector\Class_\AddMockPropertiesRector;
|
||||
use Rector\PhpSpecToPHPUnit\Rector\Class_\PhpSpecClassToPHPUnitClassRector;
|
||||
use Rector\PhpSpecToPHPUnit\Rector\Class_\RenameSpecFileToTestFileRector;
|
||||
use Rector\PhpSpecToPHPUnit\Rector\ClassMethod\PhpSpecMethodToPHPUnitMethodRector;
|
||||
use Rector\PhpSpecToPHPUnit\Rector\MethodCall\PhpSpecMocksToPHPUnitMocksRector;
|
||||
use Rector\PhpSpecToPHPUnit\Rector\MethodCall\PhpSpecPromisesToPHPUnitAssertRector;
|
||||
use Rector\PhpSpecToPHPUnit\Rector\Variable\MockVariableToPropertyFetchRector;
|
||||
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
|
||||
# see: https://gnugat.github.io/2015/09/23/phpunit-with-phpspec.html
|
||||
return static function (\Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator $containerConfigurator) : void {
|
||||
$services = $containerConfigurator->services();
|
||||
# 1. first convert mocks
|
||||
$services->set(\Rector\PhpSpecToPHPUnit\Rector\MethodCall\PhpSpecMocksToPHPUnitMocksRector::class);
|
||||
$services->set(\Rector\PhpSpecToPHPUnit\Rector\MethodCall\PhpSpecPromisesToPHPUnitAssertRector::class);
|
||||
# 2. then methods
|
||||
$services->set(\Rector\PhpSpecToPHPUnit\Rector\ClassMethod\PhpSpecMethodToPHPUnitMethodRector::class);
|
||||
# 3. then the class itself
|
||||
$services->set(\Rector\PhpSpecToPHPUnit\Rector\Class_\PhpSpecClassToPHPUnitClassRector::class);
|
||||
$services->set(\Rector\PhpSpecToPHPUnit\Rector\Class_\AddMockPropertiesRector::class);
|
||||
$services->set(\Rector\PhpSpecToPHPUnit\Rector\Variable\MockVariableToPropertyFetchRector::class);
|
||||
$services->set(\Rector\PhpSpecToPHPUnit\Rector\Class_\RenameSpecFileToTestFileRector::class);
|
||||
};
|
|
@ -1,4 +1,4 @@
|
|||
# 512 Rules Overview
|
||||
# 505 Rules Overview
|
||||
|
||||
<br>
|
||||
|
||||
|
@ -74,8 +74,6 @@
|
|||
|
||||
- [Php81](#php81) (9)
|
||||
|
||||
- [PhpSpecToPHPUnit](#phpspectophpunit) (7)
|
||||
|
||||
- [PostRector](#postrector) (7)
|
||||
|
||||
- [Privatization](#privatization) (10)
|
||||
|
@ -8550,225 +8548,6 @@ Refactor Spatie enum class to native Enum
|
|||
|
||||
<br>
|
||||
|
||||
## PhpSpecToPHPUnit
|
||||
|
||||
### AddMockPropertiesRector
|
||||
|
||||
Migrate PhpSpec behavior to PHPUnit test
|
||||
|
||||
- class: [`Rector\PhpSpecToPHPUnit\Rector\Class_\AddMockPropertiesRector`](../rules/PhpSpecToPHPUnit/Rector/Class_/AddMockPropertiesRector.php)
|
||||
|
||||
```diff
|
||||
namespace spec\SomeNamespaceForThisTest;
|
||||
|
||||
-use PhpSpec\ObjectBehavior;
|
||||
-
|
||||
class OrderSpec extends ObjectBehavior
|
||||
{
|
||||
- public function let(OrderFactory $factory, ShippingMethod $shippingMethod): void
|
||||
+ /**
|
||||
+ * @var \SomeNamespaceForThisTest\Order
|
||||
+ */
|
||||
+ private $order;
|
||||
+ protected function setUp()
|
||||
{
|
||||
- $factory->createShippingMethodFor(Argument::any())->shouldBeCalled()->willReturn($shippingMethod);
|
||||
+ /** @var OrderFactory|\PHPUnit\Framework\MockObject\MockObject $factory */
|
||||
+ $factory = $this->createMock(OrderFactory::class);
|
||||
+
|
||||
+ /** @var ShippingMethod|\PHPUnit\Framework\MockObject\MockObject $shippingMethod */
|
||||
+ $shippingMethod = $this->createMock(ShippingMethod::class);
|
||||
+
|
||||
+ $factory->expects($this->once())->method('createShippingMethodFor')->willReturn($shippingMethod);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### MockVariableToPropertyFetchRector
|
||||
|
||||
Migrate PhpSpec behavior to PHPUnit test
|
||||
|
||||
- class: [`Rector\PhpSpecToPHPUnit\Rector\Variable\MockVariableToPropertyFetchRector`](../rules/PhpSpecToPHPUnit/Rector/Variable/MockVariableToPropertyFetchRector.php)
|
||||
|
||||
```diff
|
||||
namespace spec\SomeNamespaceForThisTest;
|
||||
|
||||
-use PhpSpec\ObjectBehavior;
|
||||
-
|
||||
class OrderSpec extends ObjectBehavior
|
||||
{
|
||||
- public function let(OrderFactory $factory, ShippingMethod $shippingMethod): void
|
||||
+ /**
|
||||
+ * @var \SomeNamespaceForThisTest\Order
|
||||
+ */
|
||||
+ private $order;
|
||||
+ protected function setUp()
|
||||
{
|
||||
- $factory->createShippingMethodFor(Argument::any())->shouldBeCalled()->willReturn($shippingMethod);
|
||||
+ /** @var OrderFactory|\PHPUnit\Framework\MockObject\MockObject $factory */
|
||||
+ $factory = $this->createMock(OrderFactory::class);
|
||||
+
|
||||
+ /** @var ShippingMethod|\PHPUnit\Framework\MockObject\MockObject $shippingMethod */
|
||||
+ $shippingMethod = $this->createMock(ShippingMethod::class);
|
||||
+
|
||||
+ $factory->expects($this->once())->method('createShippingMethodFor')->willReturn($shippingMethod);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### PhpSpecClassToPHPUnitClassRector
|
||||
|
||||
Migrate PhpSpec behavior to PHPUnit test
|
||||
|
||||
- class: [`Rector\PhpSpecToPHPUnit\Rector\Class_\PhpSpecClassToPHPUnitClassRector`](../rules/PhpSpecToPHPUnit/Rector/Class_/PhpSpecClassToPHPUnitClassRector.php)
|
||||
|
||||
```diff
|
||||
namespace spec\SomeNamespaceForThisTest;
|
||||
|
||||
-use PhpSpec\ObjectBehavior;
|
||||
-
|
||||
class OrderSpec extends ObjectBehavior
|
||||
{
|
||||
- public function let(OrderFactory $factory, ShippingMethod $shippingMethod): void
|
||||
+ /**
|
||||
+ * @var \SomeNamespaceForThisTest\Order
|
||||
+ */
|
||||
+ private $order;
|
||||
+ protected function setUp()
|
||||
{
|
||||
- $factory->createShippingMethodFor(Argument::any())->shouldBeCalled()->willReturn($shippingMethod);
|
||||
+ /** @var OrderFactory|\PHPUnit\Framework\MockObject\MockObject $factory */
|
||||
+ $factory = $this->createMock(OrderFactory::class);
|
||||
+
|
||||
+ /** @var ShippingMethod|\PHPUnit\Framework\MockObject\MockObject $shippingMethod */
|
||||
+ $shippingMethod = $this->createMock(ShippingMethod::class);
|
||||
+
|
||||
+ $factory->expects($this->once())->method('createShippingMethodFor')->willReturn($shippingMethod);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### PhpSpecMethodToPHPUnitMethodRector
|
||||
|
||||
Migrate PhpSpec behavior to PHPUnit test
|
||||
|
||||
- class: [`Rector\PhpSpecToPHPUnit\Rector\ClassMethod\PhpSpecMethodToPHPUnitMethodRector`](../rules/PhpSpecToPHPUnit/Rector/ClassMethod/PhpSpecMethodToPHPUnitMethodRector.php)
|
||||
|
||||
```diff
|
||||
namespace spec\SomeNamespaceForThisTest;
|
||||
|
||||
-use PhpSpec\ObjectBehavior;
|
||||
-
|
||||
class OrderSpec extends ObjectBehavior
|
||||
{
|
||||
- public function let(OrderFactory $factory, ShippingMethod $shippingMethod): void
|
||||
+ /**
|
||||
+ * @var \SomeNamespaceForThisTest\Order
|
||||
+ */
|
||||
+ private $order;
|
||||
+ protected function setUp()
|
||||
{
|
||||
- $factory->createShippingMethodFor(Argument::any())->shouldBeCalled()->willReturn($shippingMethod);
|
||||
+ /** @var OrderFactory|\PHPUnit\Framework\MockObject\MockObject $factory */
|
||||
+ $factory = $this->createMock(OrderFactory::class);
|
||||
+
|
||||
+ /** @var ShippingMethod|\PHPUnit\Framework\MockObject\MockObject $shippingMethod */
|
||||
+ $shippingMethod = $this->createMock(ShippingMethod::class);
|
||||
+
|
||||
+ $factory->expects($this->once())->method('createShippingMethodFor')->willReturn($shippingMethod);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### PhpSpecMocksToPHPUnitMocksRector
|
||||
|
||||
Migrate PhpSpec behavior to PHPUnit test
|
||||
|
||||
- class: [`Rector\PhpSpecToPHPUnit\Rector\MethodCall\PhpSpecMocksToPHPUnitMocksRector`](../rules/PhpSpecToPHPUnit/Rector/MethodCall/PhpSpecMocksToPHPUnitMocksRector.php)
|
||||
|
||||
```diff
|
||||
namespace spec\SomeNamespaceForThisTest;
|
||||
|
||||
-use PhpSpec\ObjectBehavior;
|
||||
-
|
||||
class OrderSpec extends ObjectBehavior
|
||||
{
|
||||
- public function let(OrderFactory $factory, ShippingMethod $shippingMethod): void
|
||||
+ /**
|
||||
+ * @var \SomeNamespaceForThisTest\Order
|
||||
+ */
|
||||
+ private $order;
|
||||
+ protected function setUp()
|
||||
{
|
||||
- $factory->createShippingMethodFor(Argument::any())->shouldBeCalled()->willReturn($shippingMethod);
|
||||
+ /** @var OrderFactory|\PHPUnit\Framework\MockObject\MockObject $factory */
|
||||
+ $factory = $this->createMock(OrderFactory::class);
|
||||
+
|
||||
+ /** @var ShippingMethod|\PHPUnit\Framework\MockObject\MockObject $shippingMethod */
|
||||
+ $shippingMethod = $this->createMock(ShippingMethod::class);
|
||||
+
|
||||
+ $factory->expects($this->once())->method('createShippingMethodFor')->willReturn($shippingMethod);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### PhpSpecPromisesToPHPUnitAssertRector
|
||||
|
||||
Migrate PhpSpec behavior to PHPUnit test
|
||||
|
||||
- class: [`Rector\PhpSpecToPHPUnit\Rector\MethodCall\PhpSpecPromisesToPHPUnitAssertRector`](../rules/PhpSpecToPHPUnit/Rector/MethodCall/PhpSpecPromisesToPHPUnitAssertRector.php)
|
||||
|
||||
```diff
|
||||
namespace spec\SomeNamespaceForThisTest;
|
||||
|
||||
-use PhpSpec\ObjectBehavior;
|
||||
-
|
||||
class OrderSpec extends ObjectBehavior
|
||||
{
|
||||
- public function let(OrderFactory $factory, ShippingMethod $shippingMethod): void
|
||||
+ /**
|
||||
+ * @var \SomeNamespaceForThisTest\Order
|
||||
+ */
|
||||
+ private $order;
|
||||
+ protected function setUp()
|
||||
{
|
||||
- $factory->createShippingMethodFor(Argument::any())->shouldBeCalled()->willReturn($shippingMethod);
|
||||
+ /** @var OrderFactory|\PHPUnit\Framework\MockObject\MockObject $factory */
|
||||
+ $factory = $this->createMock(OrderFactory::class);
|
||||
+
|
||||
+ /** @var ShippingMethod|\PHPUnit\Framework\MockObject\MockObject $shippingMethod */
|
||||
+ $shippingMethod = $this->createMock(ShippingMethod::class);
|
||||
+
|
||||
+ $factory->expects($this->once())->method('createShippingMethodFor')->willReturn($shippingMethod);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### RenameSpecFileToTestFileRector
|
||||
|
||||
Rename "*Spec.php" file to "*Test.php" file
|
||||
|
||||
- class: [`Rector\PhpSpecToPHPUnit\Rector\Class_\RenameSpecFileToTestFileRector`](../rules/PhpSpecToPHPUnit/Rector/Class_/RenameSpecFileToTestFileRector.php)
|
||||
|
||||
```diff
|
||||
-// tests/SomeSpec.php
|
||||
+// tests/SomeTest.php
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
## PostRector
|
||||
|
||||
### ClassRenamingPostRector
|
||||
|
|
|
@ -66,10 +66,6 @@ final class SetList implements \Rector\Set\Contract\SetListInterface
|
|||
* @var string
|
||||
*/
|
||||
public const PHPSPEC_40 = __DIR__ . '/../../../config/set/phpspec40.php';
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
public const PHPSPEC_TO_PHPUNIT = __DIR__ . '/../../../config/set/phpspec-to-phpunit.php';
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Expr\MethodCall;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
final class LetManipulator
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
public function __construct(\Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver)
|
||||
{
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
}
|
||||
public function isLetNeededInClass(\PhpParser\Node\Stmt\Class_ $class) : bool
|
||||
{
|
||||
foreach ($class->getMethods() as $classMethod) {
|
||||
// new test
|
||||
if ($this->nodeNameResolver->isName($classMethod, 'test*')) {
|
||||
continue;
|
||||
}
|
||||
$hasBeConstructedThrough = (bool) $this->betterNodeFinder->find((array) $classMethod->stmts, function (\PhpParser\Node $node) : bool {
|
||||
if (!$node instanceof \PhpParser\Node\Expr\MethodCall) {
|
||||
return \false;
|
||||
}
|
||||
return $this->nodeNameResolver->isName($node->name, 'beConstructedThrough');
|
||||
});
|
||||
if ($hasBeConstructedThrough) {
|
||||
continue;
|
||||
}
|
||||
return \true;
|
||||
}
|
||||
return \false;
|
||||
}
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit;
|
||||
|
||||
use PhpParser\Node\Expr\Array_;
|
||||
use PhpParser\Node\Scalar\String_;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PhpParser\Node\Stmt\Return_;
|
||||
final class MatchersManipulator
|
||||
{
|
||||
/**
|
||||
* @return string[]
|
||||
*/
|
||||
public function resolveMatcherNamesFromClass(\PhpParser\Node\Stmt\Class_ $class) : array
|
||||
{
|
||||
$classMethod = $class->getMethod('getMatchers');
|
||||
if (!$classMethod instanceof \PhpParser\Node\Stmt\ClassMethod) {
|
||||
return [];
|
||||
}
|
||||
if (!isset($classMethod->stmts[0])) {
|
||||
return [];
|
||||
}
|
||||
if (!$classMethod->stmts[0] instanceof \PhpParser\Node\Stmt\Return_) {
|
||||
return [];
|
||||
}
|
||||
/** @var Return_ $return */
|
||||
$return = $classMethod->stmts[0];
|
||||
if (!$return->expr instanceof \PhpParser\Node\Expr\Array_) {
|
||||
return [];
|
||||
}
|
||||
$keys = [];
|
||||
foreach ($return->expr->items as $arrayItem) {
|
||||
if ($arrayItem === null) {
|
||||
continue;
|
||||
}
|
||||
if ($arrayItem->key instanceof \PhpParser\Node\Scalar\String_) {
|
||||
$keys[] = $arrayItem->key->value;
|
||||
}
|
||||
}
|
||||
return $keys;
|
||||
}
|
||||
}
|
|
@ -1,123 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit\Naming;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Identifier;
|
||||
use PhpParser\Node\Name;
|
||||
use PhpParser\Node\Name\FullyQualified;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\ClassLike;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PhpParser\Node\Stmt\Namespace_;
|
||||
use Rector\Core\Exception\ShouldNotHappenException;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\Core\Util\StaticRectorStrings;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use RectorPrefix20220303\Symplify\PackageBuilder\Strings\StringFormatConverter;
|
||||
final class PhpSpecRenaming
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private const SPEC = 'Spec';
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Symplify\PackageBuilder\Strings\StringFormatConverter
|
||||
*/
|
||||
private $stringFormatConverter;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \RectorPrefix20220303\Symplify\PackageBuilder\Strings\StringFormatConverter $stringFormatConverter, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->stringFormatConverter = $stringFormatConverter;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
public function renameMethod(\PhpParser\Node\Stmt\ClassMethod $classMethod) : void
|
||||
{
|
||||
if ($classMethod->isPrivate()) {
|
||||
return;
|
||||
}
|
||||
$classMethodName = $this->nodeNameResolver->getName($classMethod);
|
||||
$classMethodName = $this->removeNamePrefixes($classMethodName);
|
||||
// from PhpSpec to PHPUnit method naming convention
|
||||
$classMethodName = $this->stringFormatConverter->underscoreAndHyphenToCamelCase($classMethodName);
|
||||
// add "test", so PHPUnit runs the method
|
||||
if (\strncmp($classMethodName, 'test', \strlen('test')) !== 0) {
|
||||
$classMethodName = 'test' . \ucfirst($classMethodName);
|
||||
}
|
||||
$classMethod->name = new \PhpParser\Node\Identifier($classMethodName);
|
||||
}
|
||||
public function renameExtends(\PhpParser\Node\Stmt\Class_ $class) : void
|
||||
{
|
||||
$class->extends = new \PhpParser\Node\Name\FullyQualified('PHPUnit\\Framework\\TestCase');
|
||||
}
|
||||
public function renameNamespace(\PhpParser\Node\Stmt\Class_ $class) : void
|
||||
{
|
||||
$namespace = $this->betterNodeFinder->findParentType($class, \PhpParser\Node\Stmt\Namespace_::class);
|
||||
if (!$namespace instanceof \PhpParser\Node\Stmt\Namespace_) {
|
||||
return;
|
||||
}
|
||||
$namespaceName = $this->nodeNameResolver->getName($namespace);
|
||||
if ($namespaceName === null) {
|
||||
return;
|
||||
}
|
||||
$newNamespaceName = \Rector\Core\Util\StaticRectorStrings::removePrefixes($namespaceName, ['spec\\']);
|
||||
$namespace->name = new \PhpParser\Node\Name('Tests\\' . $newNamespaceName);
|
||||
}
|
||||
public function renameClass(\PhpParser\Node\Stmt\Class_ $class) : void
|
||||
{
|
||||
$classShortName = $this->nodeNameResolver->getShortName($class);
|
||||
// anonymous class?
|
||||
if ($classShortName === '') {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
// 2. change class name
|
||||
$newClassName = \Rector\Core\Util\StaticRectorStrings::removeSuffixes($classShortName, [self::SPEC]);
|
||||
$newTestClassName = $newClassName . 'Test';
|
||||
$class->name = new \PhpParser\Node\Identifier($newTestClassName);
|
||||
}
|
||||
public function resolveObjectPropertyName(\PhpParser\Node\Stmt\Class_ $class) : string
|
||||
{
|
||||
// anonymous class?
|
||||
if ($class->name === null) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$shortClassName = $this->nodeNameResolver->getShortName($class);
|
||||
$bareClassName = \Rector\Core\Util\StaticRectorStrings::removeSuffixes($shortClassName, [self::SPEC, 'Test']);
|
||||
return \lcfirst($bareClassName);
|
||||
}
|
||||
public function resolveTestedClass(\PhpParser\Node $node) : string
|
||||
{
|
||||
if ($node instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
$className = (string) $this->nodeNameResolver->getName($node);
|
||||
} else {
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$className = (string) $this->nodeNameResolver->getName($classLike);
|
||||
}
|
||||
$newClassName = \Rector\Core\Util\StaticRectorStrings::removePrefixes($className, ['spec\\']);
|
||||
return \Rector\Core\Util\StaticRectorStrings::removeSuffixes($newClassName, [self::SPEC]);
|
||||
}
|
||||
private function removeNamePrefixes(string $name) : string
|
||||
{
|
||||
$originalName = $name;
|
||||
$name = \Rector\Core\Util\StaticRectorStrings::removePrefixes($name, ['it_should_have_', 'it_should_be', 'it_should_', 'it_is_', 'it_', 'is_']);
|
||||
if ($name === '') {
|
||||
return $originalName;
|
||||
}
|
||||
return $name;
|
||||
}
|
||||
}
|
|
@ -1,81 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit\NodeFactory;
|
||||
|
||||
use PhpParser\Node\Arg;
|
||||
use PhpParser\Node\Expr;
|
||||
use PhpParser\Node\Expr\MethodCall;
|
||||
use PhpParser\Node\Expr\PropertyFetch;
|
||||
use PhpParser\Node\Expr\Variable;
|
||||
use Rector\Core\PhpParser\Node\NodeFactory;
|
||||
use Rector\Core\PhpParser\Node\Value\ValueResolver;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
final class AssertMethodCallFactory
|
||||
{
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
private $isBoolAssert = \false;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\PhpParser\Node\NodeFactory
|
||||
*/
|
||||
private $nodeFactory;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\PhpParser\Node\Value\ValueResolver
|
||||
*/
|
||||
private $valueResolver;
|
||||
public function __construct(\Rector\Core\PhpParser\Node\NodeFactory $nodeFactory, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\Core\PhpParser\Node\Value\ValueResolver $valueResolver)
|
||||
{
|
||||
$this->nodeFactory = $nodeFactory;
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->valueResolver = $valueResolver;
|
||||
}
|
||||
public function createAssertMethod(string $name, \PhpParser\Node\Expr $value, ?\PhpParser\Node\Expr $expected, \PhpParser\Node\Expr\PropertyFetch $testedObjectPropertyFetch) : \PhpParser\Node\Expr\MethodCall
|
||||
{
|
||||
$this->isBoolAssert = \false;
|
||||
// special case with bool!
|
||||
if ($expected instanceof \PhpParser\Node\Expr) {
|
||||
$name = $this->resolveBoolMethodName($name, $expected);
|
||||
}
|
||||
$assetMethodCall = $this->nodeFactory->createMethodCall('this', $name);
|
||||
if (!$this->isBoolAssert && $expected instanceof \PhpParser\Node\Expr) {
|
||||
$assetMethodCall->args[] = new \PhpParser\Node\Arg($this->thisToTestedObjectPropertyFetch($expected, $testedObjectPropertyFetch));
|
||||
}
|
||||
$assetMethodCall->args[] = new \PhpParser\Node\Arg($this->thisToTestedObjectPropertyFetch($value, $testedObjectPropertyFetch));
|
||||
return $assetMethodCall;
|
||||
}
|
||||
private function resolveBoolMethodName(string $name, \PhpParser\Node\Expr $expr) : string
|
||||
{
|
||||
if (!$this->valueResolver->isTrueOrFalse($expr)) {
|
||||
return $name;
|
||||
}
|
||||
$isFalse = $this->valueResolver->isFalse($expr);
|
||||
if ($name === 'assertSame') {
|
||||
$this->isBoolAssert = \true;
|
||||
return $isFalse ? 'assertFalse' : 'assertTrue';
|
||||
}
|
||||
if ($name === 'assertNotSame') {
|
||||
$this->isBoolAssert = \true;
|
||||
return $isFalse ? 'assertNotFalse' : 'assertNotTrue';
|
||||
}
|
||||
return $name;
|
||||
}
|
||||
private function thisToTestedObjectPropertyFetch(\PhpParser\Node\Expr $expr, \PhpParser\Node\Expr\PropertyFetch $propertyFetch) : \PhpParser\Node\Expr
|
||||
{
|
||||
if (!$expr instanceof \PhpParser\Node\Expr\Variable) {
|
||||
return $expr;
|
||||
}
|
||||
if (!$this->nodeNameResolver->isName($expr, 'this')) {
|
||||
return $expr;
|
||||
}
|
||||
return $propertyFetch;
|
||||
}
|
||||
}
|
|
@ -1,82 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit\NodeFactory;
|
||||
|
||||
use PhpParser\Node\Arg;
|
||||
use PhpParser\Node\Expr\Array_;
|
||||
use PhpParser\Node\Expr\ArrayItem;
|
||||
use PhpParser\Node\Expr\Assign;
|
||||
use PhpParser\Node\Expr\MethodCall;
|
||||
use PhpParser\Node\Expr\New_;
|
||||
use PhpParser\Node\Expr\PropertyFetch;
|
||||
use PhpParser\Node\Expr\StaticCall;
|
||||
use PhpParser\Node\Name\FullyQualified;
|
||||
use Rector\Core\PhpParser\Node\NodeFactory;
|
||||
use Rector\Core\PhpParser\Node\Value\ValueResolver;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
final class BeConstructedWithAssignFactory
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\PhpParser\Node\Value\ValueResolver
|
||||
*/
|
||||
private $valueResolver;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\PhpParser\Node\NodeFactory
|
||||
*/
|
||||
private $nodeFactory;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\Core\PhpParser\Node\Value\ValueResolver $valueResolver, \Rector\Core\PhpParser\Node\NodeFactory $nodeFactory)
|
||||
{
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->valueResolver = $valueResolver;
|
||||
$this->nodeFactory = $nodeFactory;
|
||||
}
|
||||
public function create(\PhpParser\Node\Expr\MethodCall $methodCall, string $testedClass, \PhpParser\Node\Expr\PropertyFetch $propertyFetch) : ?\PhpParser\Node\Expr\Assign
|
||||
{
|
||||
if ($this->nodeNameResolver->isName($methodCall->name, 'beConstructedWith')) {
|
||||
$new = new \PhpParser\Node\Expr\New_(new \PhpParser\Node\Name\FullyQualified($testedClass));
|
||||
$new->args = $methodCall->args;
|
||||
return new \PhpParser\Node\Expr\Assign($propertyFetch, $new);
|
||||
}
|
||||
if ($this->nodeNameResolver->isName($methodCall->name, 'beConstructedThrough')) {
|
||||
if (!isset($methodCall->args[0])) {
|
||||
return null;
|
||||
}
|
||||
if (!$methodCall->args[0] instanceof \PhpParser\Node\Arg) {
|
||||
return null;
|
||||
}
|
||||
$methodName = $this->valueResolver->getValue($methodCall->args[0]->value);
|
||||
$staticCall = $this->nodeFactory->createStaticCall($testedClass, $methodName);
|
||||
$this->moveConstructorArguments($methodCall, $staticCall);
|
||||
return new \PhpParser\Node\Expr\Assign($propertyFetch, $staticCall);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private function moveConstructorArguments(\PhpParser\Node\Expr\MethodCall $methodCall, \PhpParser\Node\Expr\StaticCall $staticCall) : void
|
||||
{
|
||||
if (!isset($methodCall->args[1])) {
|
||||
return;
|
||||
}
|
||||
if (!$methodCall->args[1] instanceof \PhpParser\Node\Arg) {
|
||||
return;
|
||||
}
|
||||
if (!$methodCall->args[1]->value instanceof \PhpParser\Node\Expr\Array_) {
|
||||
return;
|
||||
}
|
||||
/** @var Array_ $array */
|
||||
$array = $methodCall->args[1]->value;
|
||||
foreach ($array->items as $arrayItem) {
|
||||
if (!$arrayItem instanceof \PhpParser\Node\Expr\ArrayItem) {
|
||||
continue;
|
||||
}
|
||||
$staticCall->args[] = new \PhpParser\Node\Arg($arrayItem->value);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,55 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit\NodeFactory;
|
||||
|
||||
use PhpParser\Node\Arg;
|
||||
use PhpParser\Node\Expr\Array_;
|
||||
use PhpParser\Node\Expr\MethodCall;
|
||||
use PhpParser\Node\Expr\PropertyFetch;
|
||||
use PhpParser\Node\Identifier;
|
||||
use Rector\Core\Exception\ShouldNotHappenException;
|
||||
use Rector\Core\PhpParser\Node\Value\ValueResolver;
|
||||
use Rector\PostRector\Collector\NodesToAddCollector;
|
||||
final class DuringMethodCallFactory
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\PhpParser\Node\Value\ValueResolver
|
||||
*/
|
||||
private $valueResolver;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PostRector\Collector\NodesToAddCollector
|
||||
*/
|
||||
private $nodesToAddCollector;
|
||||
public function __construct(\Rector\Core\PhpParser\Node\Value\ValueResolver $valueResolver, \Rector\PostRector\Collector\NodesToAddCollector $nodesToAddCollector)
|
||||
{
|
||||
$this->valueResolver = $valueResolver;
|
||||
$this->nodesToAddCollector = $nodesToAddCollector;
|
||||
}
|
||||
public function create(\PhpParser\Node\Expr\MethodCall $methodCall, \PhpParser\Node\Expr\PropertyFetch $propertyFetch) : \PhpParser\Node\Expr\MethodCall
|
||||
{
|
||||
if (!isset($methodCall->args[0])) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
if (!$methodCall->args[0] instanceof \PhpParser\Node\Arg) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$name = $this->valueResolver->getValue($methodCall->args[0]->value);
|
||||
$thisObjectPropertyMethodCall = new \PhpParser\Node\Expr\MethodCall($propertyFetch, $name);
|
||||
if (isset($methodCall->args[1]) && $methodCall->args[1] instanceof \PhpParser\Node\Arg && $methodCall->args[1]->value instanceof \PhpParser\Node\Expr\Array_) {
|
||||
/** @var Array_ $array */
|
||||
$array = $methodCall->args[1]->value;
|
||||
if (isset($array->items[0])) {
|
||||
$thisObjectPropertyMethodCall->args[] = new \PhpParser\Node\Arg($array->items[0]->value);
|
||||
}
|
||||
}
|
||||
/** @var MethodCall $parentMethodCall */
|
||||
$parentMethodCall = $methodCall->var;
|
||||
$parentMethodCall->name = new \PhpParser\Node\Identifier('expectException');
|
||||
// add $this->object->someCall($withArgs)
|
||||
$this->nodesToAddCollector->addNodeAfterNode($thisObjectPropertyMethodCall, $methodCall);
|
||||
return $parentMethodCall;
|
||||
}
|
||||
}
|
|
@ -1,112 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Expr\Variable;
|
||||
use PhpParser\Node\Param;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use Rector\Core\Exception\ShouldNotHappenException;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use RectorPrefix20220303\Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser;
|
||||
final class PhpSpecMockCollector
|
||||
{
|
||||
/**
|
||||
* @var mixed[]
|
||||
*/
|
||||
private $mocks = [];
|
||||
/**
|
||||
* @var mixed[]
|
||||
*/
|
||||
private $mocksWithsTypes = [];
|
||||
/**
|
||||
* @var mixed[]
|
||||
*/
|
||||
private $propertyMocksByClass = [];
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser
|
||||
*/
|
||||
private $simpleCallableNodeTraverser;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\RectorPrefix20220303\Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser $simpleCallableNodeTraverser, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->simpleCallableNodeTraverser = $simpleCallableNodeTraverser;
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
/**
|
||||
* @return mixed[]
|
||||
*/
|
||||
public function resolveClassMocksFromParam(\PhpParser\Node\Stmt\Class_ $class) : array
|
||||
{
|
||||
$className = (string) $this->nodeNameResolver->getName($class);
|
||||
if (isset($this->mocks[$className]) && $this->mocks[$className] !== []) {
|
||||
return $this->mocks[$className];
|
||||
}
|
||||
$this->simpleCallableNodeTraverser->traverseNodesWithCallable($class, function (\PhpParser\Node $node) use($class) {
|
||||
if (!$node instanceof \PhpParser\Node\Stmt\ClassMethod) {
|
||||
return null;
|
||||
}
|
||||
if (!$node->isPublic()) {
|
||||
return null;
|
||||
}
|
||||
foreach ($node->params as $param) {
|
||||
$this->addMockFromParam($class, $param);
|
||||
}
|
||||
return null;
|
||||
});
|
||||
// set default value if none was found
|
||||
if (!isset($this->mocks[$className])) {
|
||||
$this->mocks[$className] = [];
|
||||
}
|
||||
return $this->mocks[$className];
|
||||
}
|
||||
public function isVariableMockInProperty(\PhpParser\Node\Stmt\Class_ $class, \PhpParser\Node\Expr\Variable $variable) : bool
|
||||
{
|
||||
$variableName = $this->nodeNameResolver->getName($variable);
|
||||
$className = (string) $this->nodeNameResolver->getName($class);
|
||||
return \in_array($variableName, $this->propertyMocksByClass[$className] ?? [], \true);
|
||||
}
|
||||
public function getTypeForClassAndVariable(\PhpParser\Node\Stmt\Class_ $class, string $variable) : string
|
||||
{
|
||||
$className = (string) $this->nodeNameResolver->getName($class);
|
||||
if (!isset($this->mocksWithsTypes[$className][$variable])) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
return $this->mocksWithsTypes[$className][$variable];
|
||||
}
|
||||
public function addPropertyMock(string $class, string $property) : void
|
||||
{
|
||||
$this->propertyMocksByClass[$class][] = $property;
|
||||
}
|
||||
private function addMockFromParam(\PhpParser\Node\Stmt\Class_ $class, \PhpParser\Node\Param $param) : void
|
||||
{
|
||||
$variable = $this->nodeNameResolver->getName($param->var);
|
||||
$className = (string) $this->nodeNameResolver->getName($class);
|
||||
$classMethod = $this->betterNodeFinder->findParentType($param, \PhpParser\Node\Stmt\ClassMethod::class);
|
||||
if (!$classMethod instanceof \PhpParser\Node\Stmt\ClassMethod) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$methodName = $this->nodeNameResolver->getName($classMethod);
|
||||
$this->mocks[$className][$variable][] = $methodName;
|
||||
if ($param->type === null) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$paramType = (string) ($param->type ?? $param->type->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::ORIGINAL_NAME));
|
||||
$this->mocksWithsTypes[$className][$variable] = $paramType;
|
||||
}
|
||||
}
|
|
@ -1,67 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit\Rector;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Stmt\ClassLike;
|
||||
use PHPStan\Type\ObjectType;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
/**
|
||||
* @changelog https://gnugat.github.io/2015/09/23/phpunit-with-phpspec.html
|
||||
* @changelog http://www.phpspec.net/en/stable/cookbook/construction.html
|
||||
*/
|
||||
abstract class AbstractPhpSpecToPHPUnitRector extends \Rector\Core\Rector\AbstractRector
|
||||
{
|
||||
public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition
|
||||
{
|
||||
return new \Symplify\RuleDocGenerator\ValueObject\RuleDefinition('Migrate PhpSpec behavior to PHPUnit test', [new \Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample(<<<'CODE_SAMPLE'
|
||||
namespace spec\SomeNamespaceForThisTest;
|
||||
|
||||
use PhpSpec\ObjectBehavior;
|
||||
|
||||
class OrderSpec extends ObjectBehavior
|
||||
{
|
||||
public function let(OrderFactory $factory, ShippingMethod $shippingMethod): void
|
||||
{
|
||||
$factory->createShippingMethodFor(Argument::any())->shouldBeCalled()->willReturn($shippingMethod);
|
||||
}
|
||||
}
|
||||
CODE_SAMPLE
|
||||
, <<<'CODE_SAMPLE'
|
||||
namespace spec\SomeNamespaceForThisTest;
|
||||
|
||||
class OrderSpec extends ObjectBehavior
|
||||
{
|
||||
/**
|
||||
* @var \SomeNamespaceForThisTest\Order
|
||||
*/
|
||||
private $order;
|
||||
protected function setUp()
|
||||
{
|
||||
/** @var OrderFactory|\PHPUnit\Framework\MockObject\MockObject $factory */
|
||||
$factory = $this->createMock(OrderFactory::class);
|
||||
|
||||
/** @var ShippingMethod|\PHPUnit\Framework\MockObject\MockObject $shippingMethod */
|
||||
$shippingMethod = $this->createMock(ShippingMethod::class);
|
||||
|
||||
$factory->expects($this->once())->method('createShippingMethodFor')->willReturn($shippingMethod);
|
||||
}
|
||||
}
|
||||
CODE_SAMPLE
|
||||
)]);
|
||||
}
|
||||
protected function isInPhpSpecBehavior(\PhpParser\Node $node) : bool
|
||||
{
|
||||
if ($node instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return $this->isObjectType($node, new \PHPStan\Type\ObjectType('PhpSpec\\ObjectBehavior'));
|
||||
}
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return \false;
|
||||
}
|
||||
return $this->isInPhpSpecBehavior($classLike);
|
||||
}
|
||||
}
|
|
@ -1,93 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit\Rector\ClassMethod;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Identifier;
|
||||
use PhpParser\Node\Stmt;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use Rector\Core\ValueObject\MethodName;
|
||||
use Rector\PhpSpecToPHPUnit\Naming\PhpSpecRenaming;
|
||||
use Rector\PhpSpecToPHPUnit\PHPUnitTypeDeclarationDecorator;
|
||||
use Rector\PhpSpecToPHPUnit\Rector\AbstractPhpSpecToPHPUnitRector;
|
||||
use Rector\Privatization\NodeManipulator\VisibilityManipulator;
|
||||
/**
|
||||
* @see \Rector\Tests\PhpSpecToPHPUnit\Rector\Variable\PhpSpecToPHPUnitRector\PhpSpecToPHPUnitRectorTest
|
||||
*/
|
||||
final class PhpSpecMethodToPHPUnitMethodRector extends \Rector\PhpSpecToPHPUnit\Rector\AbstractPhpSpecToPHPUnitRector
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PhpSpecToPHPUnit\PHPUnitTypeDeclarationDecorator
|
||||
*/
|
||||
private $phpUnitTypeDeclarationDecorator;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PhpSpecToPHPUnit\Naming\PhpSpecRenaming
|
||||
*/
|
||||
private $phpSpecRenaming;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Privatization\NodeManipulator\VisibilityManipulator
|
||||
*/
|
||||
private $visibilityManipulator;
|
||||
public function __construct(\Rector\PhpSpecToPHPUnit\PHPUnitTypeDeclarationDecorator $phpUnitTypeDeclarationDecorator, \Rector\PhpSpecToPHPUnit\Naming\PhpSpecRenaming $phpSpecRenaming, \Rector\Privatization\NodeManipulator\VisibilityManipulator $visibilityManipulator)
|
||||
{
|
||||
$this->phpUnitTypeDeclarationDecorator = $phpUnitTypeDeclarationDecorator;
|
||||
$this->phpSpecRenaming = $phpSpecRenaming;
|
||||
$this->visibilityManipulator = $visibilityManipulator;
|
||||
}
|
||||
/**
|
||||
* @return array<class-string<Node>>
|
||||
*/
|
||||
public function getNodeTypes() : array
|
||||
{
|
||||
return [\PhpParser\Node\Stmt\ClassMethod::class];
|
||||
}
|
||||
/**
|
||||
* @param ClassMethod $node
|
||||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
if (!$this->isInPhpSpecBehavior($node)) {
|
||||
return null;
|
||||
}
|
||||
if ($this->isName($node, 'letGo')) {
|
||||
$node->name = new \PhpParser\Node\Identifier(\Rector\Core\ValueObject\MethodName::TEAR_DOWN);
|
||||
$this->visibilityManipulator->makeProtected($node);
|
||||
$this->phpUnitTypeDeclarationDecorator->decorate($node);
|
||||
} elseif ($this->isName($node, 'let')) {
|
||||
$node->name = new \PhpParser\Node\Identifier(\Rector\Core\ValueObject\MethodName::SET_UP);
|
||||
$this->visibilityManipulator->makeProtected($node);
|
||||
$this->phpUnitTypeDeclarationDecorator->decorate($node);
|
||||
} elseif ($node->isPublic()) {
|
||||
$this->processTestMethod($node);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
return $node;
|
||||
}
|
||||
private function processTestMethod(\PhpParser\Node\Stmt\ClassMethod $classMethod) : void
|
||||
{
|
||||
// special case, @see https://johannespichler.com/writing-custom-phpspec-matchers/
|
||||
if ($this->isName($classMethod, 'getMatchers')) {
|
||||
return;
|
||||
}
|
||||
// change name to phpunit test case format
|
||||
$this->phpSpecRenaming->renameMethod($classMethod);
|
||||
// reorder instantiation + expected exception
|
||||
$previousStmt = null;
|
||||
foreach ((array) $classMethod->stmts as $key => $stmt) {
|
||||
$printedStmtContent = $this->print($stmt);
|
||||
if (\strpos($printedStmtContent, 'duringInstantiation') !== \false && $previousStmt instanceof \PhpParser\Node\Stmt) {
|
||||
$printedPreviousStmt = $this->print($previousStmt);
|
||||
if (\strpos($printedPreviousStmt, 'beConstructedThrough') !== \false) {
|
||||
$classMethod->stmts[$key - 1] = $stmt;
|
||||
$classMethod->stmts[$key] = $previousStmt;
|
||||
}
|
||||
}
|
||||
$previousStmt = $stmt;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,68 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit\Rector\Class_;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PHPStan\Type\ObjectType;
|
||||
use PHPStan\Type\UnionType;
|
||||
use Rector\Core\NodeManipulator\ClassInsertManipulator;
|
||||
use Rector\PhpSpecToPHPUnit\PhpSpecMockCollector;
|
||||
use Rector\PhpSpecToPHPUnit\Rector\AbstractPhpSpecToPHPUnitRector;
|
||||
/**
|
||||
* @see \Rector\Tests\PhpSpecToPHPUnit\Rector\Variable\PhpSpecToPHPUnitRector\PhpSpecToPHPUnitRectorTest
|
||||
*/
|
||||
final class AddMockPropertiesRector extends \Rector\PhpSpecToPHPUnit\Rector\AbstractPhpSpecToPHPUnitRector
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\NodeManipulator\ClassInsertManipulator
|
||||
*/
|
||||
private $classInsertManipulator;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PhpSpecToPHPUnit\PhpSpecMockCollector
|
||||
*/
|
||||
private $phpSpecMockCollector;
|
||||
public function __construct(\Rector\Core\NodeManipulator\ClassInsertManipulator $classInsertManipulator, \Rector\PhpSpecToPHPUnit\PhpSpecMockCollector $phpSpecMockCollector)
|
||||
{
|
||||
$this->classInsertManipulator = $classInsertManipulator;
|
||||
$this->phpSpecMockCollector = $phpSpecMockCollector;
|
||||
}
|
||||
/**
|
||||
* @return array<class-string<Node>>
|
||||
*/
|
||||
public function getNodeTypes() : array
|
||||
{
|
||||
return [\PhpParser\Node\Stmt\Class_::class];
|
||||
}
|
||||
/**
|
||||
* @param Class_ $node
|
||||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
if (!$this->isInPhpSpecBehavior($node)) {
|
||||
return null;
|
||||
}
|
||||
$classMocks = $this->phpSpecMockCollector->resolveClassMocksFromParam($node);
|
||||
$className = $this->getName($node);
|
||||
if (!\is_string($className)) {
|
||||
return null;
|
||||
}
|
||||
foreach ($classMocks as $name => $methods) {
|
||||
if ((\is_array($methods) || $methods instanceof \Countable ? \count($methods) : 0) <= 1) {
|
||||
continue;
|
||||
}
|
||||
// non-ctor used mocks are probably local only
|
||||
if (!\in_array('let', $methods, \true)) {
|
||||
continue;
|
||||
}
|
||||
$this->phpSpecMockCollector->addPropertyMock($className, $name);
|
||||
$variableType = $this->phpSpecMockCollector->getTypeForClassAndVariable($node, $name);
|
||||
$unionType = new \PHPStan\Type\UnionType([new \PHPStan\Type\ObjectType($variableType), new \PHPStan\Type\ObjectType('PHPUnit\\Framework\\MockObject\\MockObject')]);
|
||||
$this->classInsertManipulator->addPropertyToClass($node, $name, $unionType);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -1,149 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit\Rector\Class_;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Arg;
|
||||
use PhpParser\Node\Expr\Assign;
|
||||
use PhpParser\Node\Expr\MethodCall;
|
||||
use PhpParser\Node\Expr\New_;
|
||||
use PhpParser\Node\Expr\PropertyFetch;
|
||||
use PhpParser\Node\Expr\Variable;
|
||||
use PhpParser\Node\Name;
|
||||
use PhpParser\Node\Stmt;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PhpParser\Node\Stmt\Expression;
|
||||
use PHPStan\Type\ObjectType;
|
||||
use Rector\Core\Exception\ShouldNotHappenException;
|
||||
use Rector\Core\NodeManipulator\ClassInsertManipulator;
|
||||
use Rector\PhpSpecToPHPUnit\LetManipulator;
|
||||
use Rector\PhpSpecToPHPUnit\Naming\PhpSpecRenaming;
|
||||
use Rector\PhpSpecToPHPUnit\Rector\AbstractPhpSpecToPHPUnitRector;
|
||||
use Rector\PHPStanStaticTypeMapper\Enum\TypeKind;
|
||||
use Rector\PHPUnit\NodeFactory\SetUpClassMethodFactory;
|
||||
/**
|
||||
* @see \Rector\Tests\PhpSpecToPHPUnit\Rector\Variable\PhpSpecToPHPUnitRector\PhpSpecToPHPUnitRectorTest
|
||||
*/
|
||||
final class PhpSpecClassToPHPUnitClassRector extends \Rector\PhpSpecToPHPUnit\Rector\AbstractPhpSpecToPHPUnitRector
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\NodeManipulator\ClassInsertManipulator
|
||||
*/
|
||||
private $classInsertManipulator;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PhpSpecToPHPUnit\LetManipulator
|
||||
*/
|
||||
private $letManipulator;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PhpSpecToPHPUnit\Naming\PhpSpecRenaming
|
||||
*/
|
||||
private $phpSpecRenaming;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PHPUnit\NodeFactory\SetUpClassMethodFactory
|
||||
*/
|
||||
private $setUpClassMethodFactory;
|
||||
public function __construct(\Rector\Core\NodeManipulator\ClassInsertManipulator $classInsertManipulator, \Rector\PhpSpecToPHPUnit\LetManipulator $letManipulator, \Rector\PhpSpecToPHPUnit\Naming\PhpSpecRenaming $phpSpecRenaming, \Rector\PHPUnit\NodeFactory\SetUpClassMethodFactory $setUpClassMethodFactory)
|
||||
{
|
||||
$this->classInsertManipulator = $classInsertManipulator;
|
||||
$this->letManipulator = $letManipulator;
|
||||
$this->phpSpecRenaming = $phpSpecRenaming;
|
||||
$this->setUpClassMethodFactory = $setUpClassMethodFactory;
|
||||
}
|
||||
/**
|
||||
* @return array<class-string<Node>>
|
||||
*/
|
||||
public function getNodeTypes() : array
|
||||
{
|
||||
return [\PhpParser\Node\Stmt\Class_::class];
|
||||
}
|
||||
/**
|
||||
* @param Class_ $node
|
||||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
if (!$this->isInPhpSpecBehavior($node)) {
|
||||
return null;
|
||||
}
|
||||
// 1. change namespace name to PHPUnit-like
|
||||
$this->phpSpecRenaming->renameNamespace($node);
|
||||
$propertyName = $this->phpSpecRenaming->resolveObjectPropertyName($node);
|
||||
$this->phpSpecRenaming->renameClass($node);
|
||||
$this->phpSpecRenaming->renameExtends($node);
|
||||
$testedClass = $this->phpSpecRenaming->resolveTestedClass($node);
|
||||
$testedObjectType = new \PHPStan\Type\ObjectType($testedClass);
|
||||
$this->classInsertManipulator->addPropertyToClass($node, $propertyName, $testedObjectType);
|
||||
$classMethod = $node->getMethod('let');
|
||||
// add let if missing
|
||||
if (!$classMethod instanceof \PhpParser\Node\Stmt\ClassMethod) {
|
||||
if (!$this->letManipulator->isLetNeededInClass($node)) {
|
||||
return null;
|
||||
}
|
||||
$letClassMethod = $this->createLetClassMethod($propertyName, $testedObjectType);
|
||||
$this->classInsertManipulator->addAsFirstMethod($node, $letClassMethod);
|
||||
}
|
||||
return $this->removeSelfTypeMethod($node, $testedObjectType);
|
||||
}
|
||||
private function createLetClassMethod(string $propertyName, \PHPStan\Type\ObjectType $testedObjectType) : \PhpParser\Node\Stmt\ClassMethod
|
||||
{
|
||||
$propertyFetch = new \PhpParser\Node\Expr\PropertyFetch(new \PhpParser\Node\Expr\Variable('this'), $propertyName);
|
||||
$testedObjectType = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($testedObjectType, \Rector\PHPStanStaticTypeMapper\Enum\TypeKind::RETURN());
|
||||
if (!$testedObjectType instanceof \PhpParser\Node\Name) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$new = new \PhpParser\Node\Expr\New_($testedObjectType);
|
||||
$assign = new \PhpParser\Node\Expr\Assign($propertyFetch, $new);
|
||||
return $this->setUpClassMethodFactory->createSetUpMethod([$assign]);
|
||||
}
|
||||
/**
|
||||
* This is already checked on construction of object
|
||||
*/
|
||||
private function removeSelfTypeMethod(\PhpParser\Node\Stmt\Class_ $class, \PHPStan\Type\ObjectType $testedObjectType) : \PhpParser\Node\Stmt\Class_
|
||||
{
|
||||
foreach ($class->getMethods() as $classMethod) {
|
||||
$classMethodStmts = (array) $classMethod->stmts;
|
||||
if (\count($classMethodStmts) !== 1) {
|
||||
continue;
|
||||
}
|
||||
$innerClassMethodStmt = $this->resolveFirstNonExpressionStmt($classMethodStmts);
|
||||
if (!$innerClassMethodStmt instanceof \PhpParser\Node\Expr\MethodCall) {
|
||||
continue;
|
||||
}
|
||||
if (!$this->isName($innerClassMethodStmt->name, 'shouldHaveType')) {
|
||||
continue;
|
||||
}
|
||||
if (!isset($innerClassMethodStmt->args[0])) {
|
||||
continue;
|
||||
}
|
||||
if (!$innerClassMethodStmt->args[0] instanceof \PhpParser\Node\Arg) {
|
||||
continue;
|
||||
}
|
||||
// not the tested type
|
||||
if (!$this->valueResolver->isValue($innerClassMethodStmt->args[0]->value, $testedObjectType->getClassName())) {
|
||||
continue;
|
||||
}
|
||||
// remove it
|
||||
$this->removeNodeFromStatements($class, $classMethod);
|
||||
}
|
||||
return $class;
|
||||
}
|
||||
/**
|
||||
* @param Stmt[] $stmts
|
||||
*/
|
||||
private function resolveFirstNonExpressionStmt(array $stmts) : ?\PhpParser\Node
|
||||
{
|
||||
if (!isset($stmts[0])) {
|
||||
return null;
|
||||
}
|
||||
$firstStmt = $stmts[0];
|
||||
if ($firstStmt instanceof \PhpParser\Node\Stmt\Expression) {
|
||||
return $firstStmt->expr;
|
||||
}
|
||||
return $firstStmt;
|
||||
}
|
||||
}
|
|
@ -1,69 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit\Rector\Class_;
|
||||
|
||||
use RectorPrefix20220303\Nette\Utils\Strings;
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\Core\Util\StringUtils;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
/**
|
||||
* @changelog https://gnugat.github.io/2015/09/23/phpunit-with-phpspec.html
|
||||
*
|
||||
* @see \Rector\Tests\PhpSpecToPHPUnit\Rector\Class_\RenameSpecFileToTestFileRector\RenameSpecFileToTestFileRectorTest
|
||||
*/
|
||||
final class RenameSpecFileToTestFileRector extends \Rector\Core\Rector\AbstractRector
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
* @see https://regex101.com/r/r1VkPt/1
|
||||
*/
|
||||
private const SPEC_REGEX = '#\\/spec\\/#';
|
||||
/**
|
||||
* @var string
|
||||
* @see https://regex101.com/r/WD4U43/1
|
||||
*/
|
||||
private const SPEC_SUFFIX_REGEX = '#Spec\\.php$#';
|
||||
public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition
|
||||
{
|
||||
return new \Symplify\RuleDocGenerator\ValueObject\RuleDefinition('Rename "*Spec.php" file to "*Test.php" file', [new \Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample(<<<'CODE_SAMPLE'
|
||||
// tests/SomeSpec.php
|
||||
CODE_SAMPLE
|
||||
, <<<'CODE_SAMPLE'
|
||||
// tests/SomeTest.php
|
||||
CODE_SAMPLE
|
||||
)]);
|
||||
}
|
||||
/**
|
||||
* @return array<class-string<Node>>
|
||||
*/
|
||||
public function getNodeTypes() : array
|
||||
{
|
||||
return [\PhpParser\Node\Stmt\Class_::class];
|
||||
}
|
||||
/**
|
||||
* @param Class_ $node
|
||||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$smartFileInfo = $this->file->getSmartFileInfo();
|
||||
$oldPathname = $smartFileInfo->getPathname();
|
||||
// ends with Spec.php
|
||||
if (!\Rector\Core\Util\StringUtils::isMatch($oldPathname, self::SPEC_SUFFIX_REGEX)) {
|
||||
return null;
|
||||
}
|
||||
$newPathName = $this->createPathName($oldPathname);
|
||||
$this->removedAndAddedFilesCollector->addMovedFile($this->file, $newPathName);
|
||||
return null;
|
||||
}
|
||||
private function createPathName(string $oldRealPath) : string
|
||||
{
|
||||
// suffix
|
||||
$newRealPath = \RectorPrefix20220303\Nette\Utils\Strings::replace($oldRealPath, self::SPEC_SUFFIX_REGEX, 'Test.php');
|
||||
// directory
|
||||
return \RectorPrefix20220303\Nette\Utils\Strings::replace($newRealPath, self::SPEC_REGEX, '/tests/');
|
||||
}
|
||||
}
|
|
@ -1,206 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit\Rector\MethodCall;
|
||||
|
||||
use PhpParser\Comment\Doc;
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Arg;
|
||||
use PhpParser\Node\Expr;
|
||||
use PhpParser\Node\Expr\Assign;
|
||||
use PhpParser\Node\Expr\ClassConstFetch;
|
||||
use PhpParser\Node\Expr\Error;
|
||||
use PhpParser\Node\Expr\MethodCall;
|
||||
use PhpParser\Node\Expr\PropertyFetch;
|
||||
use PhpParser\Node\Expr\StaticCall;
|
||||
use PhpParser\Node\Expr\Variable;
|
||||
use PhpParser\Node\Identifier;
|
||||
use PhpParser\Node\Name;
|
||||
use PhpParser\Node\Param;
|
||||
use PhpParser\Node\Scalar\String_;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PhpParser\Node\Stmt\Expression;
|
||||
use Rector\Core\Exception\ShouldNotHappenException;
|
||||
use Rector\Core\Php\TypeAnalyzer;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\PhpSpecToPHPUnit\PhpSpecMockCollector;
|
||||
use Rector\PhpSpecToPHPUnit\Rector\AbstractPhpSpecToPHPUnitRector;
|
||||
/**
|
||||
* @see \Rector\Tests\PhpSpecToPHPUnit\Rector\Variable\PhpSpecToPHPUnitRector\PhpSpecToPHPUnitRectorTest
|
||||
*/
|
||||
final class PhpSpecMocksToPHPUnitMocksRector extends \Rector\PhpSpecToPHPUnit\Rector\AbstractPhpSpecToPHPUnitRector
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PhpSpecToPHPUnit\PhpSpecMockCollector
|
||||
*/
|
||||
private $phpSpecMockCollector;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\Core\Php\TypeAnalyzer
|
||||
*/
|
||||
private $typeAnalyzer;
|
||||
public function __construct(\Rector\PhpSpecToPHPUnit\PhpSpecMockCollector $phpSpecMockCollector, \Rector\Core\Php\TypeAnalyzer $typeAnalyzer)
|
||||
{
|
||||
$this->phpSpecMockCollector = $phpSpecMockCollector;
|
||||
$this->typeAnalyzer = $typeAnalyzer;
|
||||
}
|
||||
/**
|
||||
* @return array<class-string<Node>>
|
||||
*/
|
||||
public function getNodeTypes() : array
|
||||
{
|
||||
return [\PhpParser\Node\Stmt\ClassMethod::class, \PhpParser\Node\Expr\MethodCall::class];
|
||||
}
|
||||
/**
|
||||
* @param ClassMethod|MethodCall $node
|
||||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
if (!$this->isInPhpSpecBehavior($node)) {
|
||||
return null;
|
||||
}
|
||||
if ($node instanceof \PhpParser\Node\Stmt\ClassMethod) {
|
||||
// public = tests, protected = internal, private = own (no framework magic)
|
||||
if ($node->isPrivate()) {
|
||||
return null;
|
||||
}
|
||||
$this->processMethodParamsToMocks($node);
|
||||
return $node;
|
||||
}
|
||||
return $this->processMethodCall($node);
|
||||
}
|
||||
private function processMethodParamsToMocks(\PhpParser\Node\Stmt\ClassMethod $classMethod) : void
|
||||
{
|
||||
// remove params and turn them to instances
|
||||
$assigns = [];
|
||||
foreach ($classMethod->params as $param) {
|
||||
if (!$param->type instanceof \PhpParser\Node\Name) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$createMockCall = $this->createCreateMockCall($param, $param->type);
|
||||
if ($createMockCall !== null) {
|
||||
$assigns[] = $createMockCall;
|
||||
}
|
||||
}
|
||||
// remove all params
|
||||
$classMethod->params = [];
|
||||
$classMethod->stmts = \array_merge($assigns, (array) $classMethod->stmts);
|
||||
}
|
||||
private function processMethodCall(\PhpParser\Node\Expr\MethodCall $methodCall) : ?\PhpParser\Node\Expr\MethodCall
|
||||
{
|
||||
if (!$this->isName($methodCall->name, 'shouldBeCalled')) {
|
||||
return null;
|
||||
}
|
||||
if (!$methodCall->var instanceof \PhpParser\Node\Expr\MethodCall) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$mockMethodName = $this->getName($methodCall->var->name);
|
||||
if ($mockMethodName === null) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$arg = $methodCall->var->args[0] ?? null;
|
||||
$expectedArg = $arg instanceof \PhpParser\Node\Arg ? $arg->value : null;
|
||||
$methodCall->var->name = new \PhpParser\Node\Identifier('expects');
|
||||
$thisOnceMethodCall = $this->nodeFactory->createLocalMethodCall('atLeastOnce');
|
||||
$methodCall->var->args = [new \PhpParser\Node\Arg($thisOnceMethodCall)];
|
||||
$methodCall->name = new \PhpParser\Node\Identifier('method');
|
||||
$methodCall->args = [new \PhpParser\Node\Arg(new \PhpParser\Node\Scalar\String_($mockMethodName))];
|
||||
if ($expectedArg !== null) {
|
||||
return $this->appendWithMethodCall($methodCall, $expectedArg);
|
||||
}
|
||||
return $methodCall;
|
||||
}
|
||||
/**
|
||||
* Variable or property fetch, based on number of present params in whole class
|
||||
*/
|
||||
private function createCreateMockCall(\PhpParser\Node\Param $param, \PhpParser\Node\Name $name) : ?\PhpParser\Node\Stmt\Expression
|
||||
{
|
||||
$class = $this->betterNodeFinder->findParentType($param, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
$classMocks = $this->phpSpecMockCollector->resolveClassMocksFromParam($class);
|
||||
$variable = $this->getName($param->var);
|
||||
$classMethod = $this->betterNodeFinder->findParentType($param, \PhpParser\Node\Stmt\ClassMethod::class);
|
||||
if (!$classMethod instanceof \PhpParser\Node\Stmt\ClassMethod) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$methodName = $this->nodeNameResolver->getName($classMethod);
|
||||
$methodsWithWThisMock = $classMocks[$variable];
|
||||
if ($param->var instanceof \PhpParser\Node\Expr\Error) {
|
||||
return null;
|
||||
}
|
||||
// single use: "$mock = $this->createMock()"
|
||||
if (!$this->phpSpecMockCollector->isVariableMockInProperty($class, $param->var)) {
|
||||
return $this->createNewMockVariableAssign($param, $name);
|
||||
}
|
||||
$reversedMethodsWithThisMock = \array_flip($methodsWithWThisMock);
|
||||
// first use of many: "$this->mock = $this->createMock()"
|
||||
if ($reversedMethodsWithThisMock[$methodName] === 0) {
|
||||
return $this->createPropertyFetchMockVariableAssign($param, $name);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private function appendWithMethodCall(\PhpParser\Node\Expr\MethodCall $methodCall, \PhpParser\Node\Expr $expr) : \PhpParser\Node\Expr\MethodCall
|
||||
{
|
||||
$withMethodCall = new \PhpParser\Node\Expr\MethodCall($methodCall, 'with');
|
||||
if ($expr instanceof \PhpParser\Node\Expr\StaticCall) {
|
||||
if ($this->isName($expr->class, '*Argument')) {
|
||||
if ($this->isName($expr->name, 'any')) {
|
||||
// no added value having this method
|
||||
return $methodCall;
|
||||
}
|
||||
if ($this->isName($expr->name, 'type')) {
|
||||
$expr = $this->createIsTypeOrIsInstanceOf($expr);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$newExpr = $this->nodeFactory->createLocalMethodCall('equalTo');
|
||||
$newExpr->args = [new \PhpParser\Node\Arg($expr)];
|
||||
$expr = $newExpr;
|
||||
}
|
||||
$withMethodCall->args = [new \PhpParser\Node\Arg($expr)];
|
||||
return $withMethodCall;
|
||||
}
|
||||
private function createNewMockVariableAssign(\PhpParser\Node\Param $param, \PhpParser\Node\Name $name) : \PhpParser\Node\Stmt\Expression
|
||||
{
|
||||
$methodCall = $this->nodeFactory->createLocalMethodCall('createMock');
|
||||
$methodCall->args[] = new \PhpParser\Node\Arg(new \PhpParser\Node\Expr\ClassConstFetch($name, 'class'));
|
||||
$assign = new \PhpParser\Node\Expr\Assign($param->var, $methodCall);
|
||||
$assignExpression = new \PhpParser\Node\Stmt\Expression($assign);
|
||||
// add @var doc comment
|
||||
$varDoc = $this->createMockVarDoc($param, $name);
|
||||
$assignExpression->setDocComment(new \PhpParser\Comment\Doc($varDoc));
|
||||
return $assignExpression;
|
||||
}
|
||||
private function createPropertyFetchMockVariableAssign(\PhpParser\Node\Param $param, \PhpParser\Node\Name $name) : \PhpParser\Node\Stmt\Expression
|
||||
{
|
||||
$variable = $this->getName($param->var);
|
||||
if ($variable === null) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$propertyFetch = new \PhpParser\Node\Expr\PropertyFetch(new \PhpParser\Node\Expr\Variable('this'), $variable);
|
||||
$methodCall = $this->nodeFactory->createLocalMethodCall('createMock');
|
||||
$methodCall->args[] = new \PhpParser\Node\Arg(new \PhpParser\Node\Expr\ClassConstFetch($name, 'class'));
|
||||
$assign = new \PhpParser\Node\Expr\Assign($propertyFetch, $methodCall);
|
||||
return new \PhpParser\Node\Stmt\Expression($assign);
|
||||
}
|
||||
private function createIsTypeOrIsInstanceOf(\PhpParser\Node\Expr\StaticCall $staticCall) : \PhpParser\Node\Expr\MethodCall
|
||||
{
|
||||
$args = $staticCall->args;
|
||||
$type = $this->valueResolver->getValue($args[0]->value);
|
||||
$name = $this->typeAnalyzer->isPhpReservedType($type) ? 'isType' : 'isInstanceOf';
|
||||
return $this->nodeFactory->createLocalMethodCall($name, $args);
|
||||
}
|
||||
private function createMockVarDoc(\PhpParser\Node\Param $param, \PhpParser\Node\Name $name) : string
|
||||
{
|
||||
$paramType = (string) $name->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::ORIGINAL_NAME, $name);
|
||||
$variableName = $this->getName($param->var);
|
||||
if ($variableName === null) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
return \sprintf('/** @var %s|\\%s $%s */', $paramType, 'PHPUnit\\Framework\\MockObject\\MockObject', $variableName);
|
||||
}
|
||||
}
|
|
@ -1,275 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit\Rector\MethodCall;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Arg;
|
||||
use PhpParser\Node\Expr\ArrayDimFetch;
|
||||
use PhpParser\Node\Expr\Assign;
|
||||
use PhpParser\Node\Expr\Clone_;
|
||||
use PhpParser\Node\Expr\FuncCall;
|
||||
use PhpParser\Node\Expr\MethodCall;
|
||||
use PhpParser\Node\Expr\PropertyFetch;
|
||||
use PhpParser\Node\Expr\Variable;
|
||||
use PhpParser\Node\Identifier;
|
||||
use PhpParser\Node\Scalar\String_;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use Rector\Core\Exception\ShouldNotHappenException;
|
||||
use Rector\PhpSpecToPHPUnit\MatchersManipulator;
|
||||
use Rector\PhpSpecToPHPUnit\Naming\PhpSpecRenaming;
|
||||
use Rector\PhpSpecToPHPUnit\NodeFactory\AssertMethodCallFactory;
|
||||
use Rector\PhpSpecToPHPUnit\NodeFactory\BeConstructedWithAssignFactory;
|
||||
use Rector\PhpSpecToPHPUnit\NodeFactory\DuringMethodCallFactory;
|
||||
use Rector\PhpSpecToPHPUnit\Rector\AbstractPhpSpecToPHPUnitRector;
|
||||
/**
|
||||
* @see \Rector\Tests\PhpSpecToPHPUnit\Rector\Variable\PhpSpecToPHPUnitRector\PhpSpecToPHPUnitRectorTest
|
||||
*/
|
||||
final class PhpSpecPromisesToPHPUnitAssertRector extends \Rector\PhpSpecToPHPUnit\Rector\AbstractPhpSpecToPHPUnitRector
|
||||
{
|
||||
/**
|
||||
* @changelog https://github.com/phpspec/phpspec/blob/master/src/PhpSpec/Wrapper/Subject.php
|
||||
* ↓
|
||||
* @changelog https://phpunit.readthedocs.io/en/8.0/assertions.html
|
||||
* @var array<string, string[]>
|
||||
*/
|
||||
private const NEW_METHOD_TO_OLD_METHODS = [
|
||||
'assertInstanceOf' => ['shouldBeAnInstanceOf', 'shouldHaveType', 'shouldReturnAnInstanceOf'],
|
||||
'assertSame' => ['shouldBe', 'shouldReturn'],
|
||||
'assertNotSame' => ['shouldNotBe', 'shouldNotReturn'],
|
||||
'assertCount' => ['shouldHaveCount'],
|
||||
'assertEquals' => ['shouldBeEqualTo', 'shouldEqual'],
|
||||
'assertNotEquals' => ['shouldNotBeEqualTo'],
|
||||
'assertContains' => ['shouldContain'],
|
||||
'assertNotContains' => ['shouldNotContain'],
|
||||
// types
|
||||
'assertIsIterable' => ['shouldBeArray'],
|
||||
'assertIsNotIterable' => ['shouldNotBeArray'],
|
||||
'assertIsString' => ['shouldBeString'],
|
||||
'assertIsNotString' => ['shouldNotBeString'],
|
||||
'assertIsBool' => ['shouldBeBool', 'shouldBeBoolean'],
|
||||
'assertIsNotBool' => ['shouldNotBeBool', 'shouldNotBeBoolean'],
|
||||
'assertIsCallable' => ['shouldBeCallable'],
|
||||
'assertIsNotCallable' => ['shouldNotBeCallable'],
|
||||
'assertIsFloat' => ['shouldBeDouble', 'shouldBeFloat'],
|
||||
'assertIsNotFloat' => ['shouldNotBeDouble', 'shouldNotBeFloat'],
|
||||
'assertIsInt' => ['shouldBeInt', 'shouldBeInteger'],
|
||||
'assertIsNotInt' => ['shouldNotBeInt', 'shouldNotBeInteger'],
|
||||
'assertIsNull' => ['shouldBeNull'],
|
||||
'assertIsNotNull' => ['shouldNotBeNull'],
|
||||
'assertIsNumeric' => ['shouldBeNumeric'],
|
||||
'assertIsNotNumeric' => ['shouldNotBeNumeric'],
|
||||
'assertIsObject' => ['shouldBeObject'],
|
||||
'assertIsNotObject' => ['shouldNotBeObject'],
|
||||
'assertIsResource' => ['shouldBeResource'],
|
||||
'assertIsNotResource' => ['shouldNotBeResource'],
|
||||
'assertIsScalar' => ['shouldBeScalar'],
|
||||
'assertIsNotScalar' => ['shouldNotBeScalar'],
|
||||
'assertNan' => ['shouldBeNan'],
|
||||
'assertFinite' => ['shouldBeFinite', 'shouldNotBeFinite'],
|
||||
'assertInfinite' => ['shouldBeInfinite', 'shouldNotBeInfinite'],
|
||||
];
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private const THIS = 'this';
|
||||
/**
|
||||
* @var string|null
|
||||
*/
|
||||
private $testedClass;
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
private $isPrepared = \false;
|
||||
/**
|
||||
* @var string[]
|
||||
*/
|
||||
private $matchersKeys = [];
|
||||
/**
|
||||
* @var \PhpParser\Node\Expr\PropertyFetch|null
|
||||
*/
|
||||
private $testedObjectPropertyFetch;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PhpSpecToPHPUnit\MatchersManipulator
|
||||
*/
|
||||
private $matchersManipulator;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PhpSpecToPHPUnit\Naming\PhpSpecRenaming
|
||||
*/
|
||||
private $phpSpecRenaming;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PhpSpecToPHPUnit\NodeFactory\AssertMethodCallFactory
|
||||
*/
|
||||
private $assertMethodCallFactory;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PhpSpecToPHPUnit\NodeFactory\BeConstructedWithAssignFactory
|
||||
*/
|
||||
private $beConstructedWithAssignFactory;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PhpSpecToPHPUnit\NodeFactory\DuringMethodCallFactory
|
||||
*/
|
||||
private $duringMethodCallFactory;
|
||||
public function __construct(\Rector\PhpSpecToPHPUnit\MatchersManipulator $matchersManipulator, \Rector\PhpSpecToPHPUnit\Naming\PhpSpecRenaming $phpSpecRenaming, \Rector\PhpSpecToPHPUnit\NodeFactory\AssertMethodCallFactory $assertMethodCallFactory, \Rector\PhpSpecToPHPUnit\NodeFactory\BeConstructedWithAssignFactory $beConstructedWithAssignFactory, \Rector\PhpSpecToPHPUnit\NodeFactory\DuringMethodCallFactory $duringMethodCallFactory)
|
||||
{
|
||||
$this->matchersManipulator = $matchersManipulator;
|
||||
$this->phpSpecRenaming = $phpSpecRenaming;
|
||||
$this->assertMethodCallFactory = $assertMethodCallFactory;
|
||||
$this->beConstructedWithAssignFactory = $beConstructedWithAssignFactory;
|
||||
$this->duringMethodCallFactory = $duringMethodCallFactory;
|
||||
}
|
||||
/**
|
||||
* @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
|
||||
{
|
||||
$this->isPrepared = \false;
|
||||
$this->matchersKeys = [];
|
||||
if (!$this->isInPhpSpecBehavior($node)) {
|
||||
return null;
|
||||
}
|
||||
if ($this->isName($node->name, 'getWrappedObject')) {
|
||||
return $node->var;
|
||||
}
|
||||
if ($this->isName($node->name, 'during')) {
|
||||
return $this->duringMethodCallFactory->create($node, $this->getTestedObjectPropertyFetch());
|
||||
}
|
||||
if ($this->isName($node->name, 'duringInstantiation')) {
|
||||
return $this->processDuringInstantiation($node);
|
||||
}
|
||||
// skip reserved names
|
||||
if ($this->isNames($node->name, ['getMatchers', 'expectException', 'assert*'])) {
|
||||
return null;
|
||||
}
|
||||
$this->prepareMethodCall($node);
|
||||
if ($this->isName($node->name, 'beConstructed*')) {
|
||||
return $this->beConstructedWithAssignFactory->create($node, $this->getTestedClass(), $this->getTestedObjectPropertyFetch());
|
||||
}
|
||||
$this->processMatchersKeys($node);
|
||||
$args = $node->args;
|
||||
foreach (self::NEW_METHOD_TO_OLD_METHODS as $newMethod => $oldMethods) {
|
||||
if (!$this->isNames($node->name, $oldMethods)) {
|
||||
continue;
|
||||
}
|
||||
return $this->assertMethodCallFactory->createAssertMethod($newMethod, $node->var, $args[0]->value ?? null, $this->getTestedObjectPropertyFetch());
|
||||
}
|
||||
if ($this->shouldSkip($node)) {
|
||||
return null;
|
||||
}
|
||||
if ($this->isName($node->name, 'clone')) {
|
||||
return new \PhpParser\Node\Expr\Clone_($this->getTestedObjectPropertyFetch());
|
||||
}
|
||||
$methodName = $this->getName($node->name);
|
||||
if ($methodName === null) {
|
||||
return null;
|
||||
}
|
||||
/** @var Class_ $classLike */
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
$classMethod = $classLike->getMethod($methodName);
|
||||
// it's a method call, skip
|
||||
if ($classMethod !== null) {
|
||||
return null;
|
||||
}
|
||||
// direct PHPUnit method calls, no need to call on property
|
||||
if (\in_array($methodName, ['atLeastOnce', 'equalTo', 'isInstanceOf', 'isType'], \true)) {
|
||||
return $node;
|
||||
}
|
||||
$node->var = $this->getTestedObjectPropertyFetch();
|
||||
return $node;
|
||||
}
|
||||
private function processDuringInstantiation(\PhpParser\Node\Expr\MethodCall $methodCall) : \PhpParser\Node\Expr\MethodCall
|
||||
{
|
||||
/** @var MethodCall $parentMethodCall */
|
||||
$parentMethodCall = $methodCall->var;
|
||||
$parentMethodCall->name = new \PhpParser\Node\Identifier('expectException');
|
||||
return $parentMethodCall;
|
||||
}
|
||||
private function prepareMethodCall(\PhpParser\Node\Expr\MethodCall $methodCall) : void
|
||||
{
|
||||
if ($this->isPrepared) {
|
||||
return;
|
||||
}
|
||||
$class = $this->betterNodeFinder->findParentType($methodCall, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return;
|
||||
}
|
||||
$className = $this->getName($class);
|
||||
if (!\is_string($className)) {
|
||||
return;
|
||||
}
|
||||
$this->matchersKeys = $this->matchersManipulator->resolveMatcherNamesFromClass($class);
|
||||
$this->testedClass = $this->phpSpecRenaming->resolveTestedClass($class);
|
||||
$this->testedObjectPropertyFetch = $this->createTestedObjectPropertyFetch($class);
|
||||
$this->isPrepared = \true;
|
||||
}
|
||||
private function getTestedObjectPropertyFetch() : \PhpParser\Node\Expr\PropertyFetch
|
||||
{
|
||||
if ($this->testedObjectPropertyFetch === null) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
return $this->testedObjectPropertyFetch;
|
||||
}
|
||||
private function getTestedClass() : string
|
||||
{
|
||||
if ($this->testedClass === null) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
return $this->testedClass;
|
||||
}
|
||||
/**
|
||||
* @changelog https://johannespichler.com/writing-custom-phpspec-matchers/
|
||||
*/
|
||||
private function processMatchersKeys(\PhpParser\Node\Expr\MethodCall $methodCall) : void
|
||||
{
|
||||
foreach ($this->matchersKeys as $matcherKey) {
|
||||
if (!$this->isName($methodCall->name, 'should' . \ucfirst($matcherKey))) {
|
||||
continue;
|
||||
}
|
||||
if (!$methodCall->var instanceof \PhpParser\Node\Expr\MethodCall) {
|
||||
continue;
|
||||
}
|
||||
// 1. assign callable to variable
|
||||
$thisGetMatchers = $this->nodeFactory->createMethodCall(self::THIS, 'getMatchers');
|
||||
$arrayDimFetch = new \PhpParser\Node\Expr\ArrayDimFetch($thisGetMatchers, new \PhpParser\Node\Scalar\String_($matcherKey));
|
||||
$matcherCallableVariable = new \PhpParser\Node\Expr\Variable('matcherCallable');
|
||||
$assign = new \PhpParser\Node\Expr\Assign($matcherCallableVariable, $arrayDimFetch);
|
||||
// 2. call it on result
|
||||
$funcCall = new \PhpParser\Node\Expr\FuncCall($matcherCallableVariable);
|
||||
$funcCall->args = $methodCall->args;
|
||||
$methodCall->name = $methodCall->var->name;
|
||||
$methodCall->var = $this->getTestedObjectPropertyFetch();
|
||||
$methodCall->args = [];
|
||||
$funcCall->args[] = new \PhpParser\Node\Arg($methodCall);
|
||||
$this->nodesToAddCollector->addNodesAfterNode([$assign, $funcCall], $methodCall);
|
||||
$this->removeNode($methodCall);
|
||||
return;
|
||||
}
|
||||
}
|
||||
private function shouldSkip(\PhpParser\Node\Expr\MethodCall $methodCall) : bool
|
||||
{
|
||||
if (!$methodCall->var instanceof \PhpParser\Node\Expr\Variable) {
|
||||
return \true;
|
||||
}
|
||||
if (!$this->nodeNameResolver->isName($methodCall->var, self::THIS)) {
|
||||
return \true;
|
||||
}
|
||||
// skip "createMock" method
|
||||
return $this->isName($methodCall->name, 'createMock');
|
||||
}
|
||||
private function createTestedObjectPropertyFetch(\PhpParser\Node\Stmt\Class_ $class) : \PhpParser\Node\Expr\PropertyFetch
|
||||
{
|
||||
$propertyName = $this->phpSpecRenaming->resolveObjectPropertyName($class);
|
||||
return new \PhpParser\Node\Expr\PropertyFetch(new \PhpParser\Node\Expr\Variable(self::THIS), $propertyName);
|
||||
}
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit\Rector\Variable;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Expr\PropertyFetch;
|
||||
use PhpParser\Node\Expr\Variable;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use Rector\PhpSpecToPHPUnit\PhpSpecMockCollector;
|
||||
use Rector\PhpSpecToPHPUnit\Rector\AbstractPhpSpecToPHPUnitRector;
|
||||
/**
|
||||
* $mock->call()
|
||||
* ↓
|
||||
* $this->mock->call()
|
||||
*
|
||||
* @see \Rector\Tests\PhpSpecToPHPUnit\Rector\Variable\PhpSpecToPHPUnitRector\PhpSpecToPHPUnitRectorTest
|
||||
*/
|
||||
final class MockVariableToPropertyFetchRector extends \Rector\PhpSpecToPHPUnit\Rector\AbstractPhpSpecToPHPUnitRector
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PhpSpecToPHPUnit\PhpSpecMockCollector
|
||||
*/
|
||||
private $phpSpecMockCollector;
|
||||
public function __construct(\Rector\PhpSpecToPHPUnit\PhpSpecMockCollector $phpSpecMockCollector)
|
||||
{
|
||||
$this->phpSpecMockCollector = $phpSpecMockCollector;
|
||||
}
|
||||
/**
|
||||
* @return array<class-string<Node>>
|
||||
*/
|
||||
public function getNodeTypes() : array
|
||||
{
|
||||
return [\PhpParser\Node\Expr\Variable::class];
|
||||
}
|
||||
/**
|
||||
* @param Variable $node
|
||||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$class = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
if (!$this->isInPhpSpecBehavior($class)) {
|
||||
return null;
|
||||
}
|
||||
if (!$this->phpSpecMockCollector->isVariableMockInProperty($class, $node)) {
|
||||
return null;
|
||||
}
|
||||
/** @var string $variableName */
|
||||
$variableName = $this->getName($node);
|
||||
return new \PhpParser\Node\Expr\PropertyFetch(new \PhpParser\Node\Expr\Variable('this'), $variableName);
|
||||
}
|
||||
}
|
|
@ -16,11 +16,11 @@ final class VersionResolver
|
|||
/**
|
||||
* @var string
|
||||
*/
|
||||
public const PACKAGE_VERSION = '320cdcd8dec579a3bb9a6138d1e50f72a22c0419';
|
||||
public const PACKAGE_VERSION = 'e2cc867255a343411916b64db5d6daafe768573d';
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
public const RELEASE_DATE = '2022-03-03 17:31:12';
|
||||
public const RELEASE_DATE = '2022-03-03 20:51:15';
|
||||
public static function resolvePackageVersion() : string
|
||||
{
|
||||
$process = new \RectorPrefix20220303\Symfony\Component\Process\Process(['git', 'log', '--pretty="%H"', '-n1', 'HEAD'], __DIR__);
|
||||
|
|
|
@ -1,43 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\Core\Php;
|
||||
|
||||
use RectorPrefix20220303\Nette\Utils\Strings;
|
||||
use Rector\Core\ValueObject\PhpVersionFeature;
|
||||
final class TypeAnalyzer
|
||||
{
|
||||
/**
|
||||
* @var string[]
|
||||
*/
|
||||
private const EXTRA_TYPES = ['object'];
|
||||
/**
|
||||
* @var string
|
||||
* @see https://regex101.com/r/57HGpC/1
|
||||
*/
|
||||
private const SQUARE_BRACKET_REGEX = '#(\\[\\])+$#';
|
||||
/**
|
||||
* @var string[]
|
||||
*/
|
||||
private $phpSupportedTypes = ['string', 'bool', 'int', 'null', 'array', 'false', 'true', 'mixed', 'iterable', 'float', 'self', 'parent', 'callable', 'void'];
|
||||
public function __construct(\Rector\Core\Php\PhpVersionProvider $phpVersionProvider)
|
||||
{
|
||||
if ($phpVersionProvider->isAtLeastPhpVersion(\Rector\Core\ValueObject\PhpVersionFeature::OBJECT_TYPE)) {
|
||||
$this->phpSupportedTypes[] = 'object';
|
||||
}
|
||||
}
|
||||
public function isPhpReservedType(string $type) : bool
|
||||
{
|
||||
$types = \explode('|', $type);
|
||||
$reservedTypes = \array_merge($this->phpSupportedTypes, self::EXTRA_TYPES);
|
||||
foreach ($types as $type) {
|
||||
$type = \strtolower($type);
|
||||
// remove [] from arrays
|
||||
$type = \RectorPrefix20220303\Nette\Utils\Strings::replace($type, self::SQUARE_BRACKET_REGEX, '');
|
||||
if (\in_array($type, $reservedTypes, \true)) {
|
||||
return \true;
|
||||
}
|
||||
}
|
||||
return \false;
|
||||
}
|
||||
}
|
2
vendor/autoload.php
vendored
2
vendor/autoload.php
vendored
|
@ -4,4 +4,4 @@
|
|||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f::getLoader();
|
||||
return ComposerAutoloaderInitfed58148328b154b90a12011aecf4137::getLoader();
|
||||
|
|
20
vendor/composer/autoload_classmap.php
vendored
20
vendor/composer/autoload_classmap.php
vendored
|
@ -1191,6 +1191,7 @@ return array(
|
|||
'RectorPrefix20220303\\Symplify\\Astral\\Reflection\\ReflectionParser' => $vendorDir . '/symplify/astral/src/Reflection/ReflectionParser.php',
|
||||
'RectorPrefix20220303\\Symplify\\Astral\\StaticFactory\\NodeValueResolverStaticFactory' => $vendorDir . '/symplify/astral/src/StaticFactory/NodeValueResolverStaticFactory.php',
|
||||
'RectorPrefix20220303\\Symplify\\Astral\\StaticFactory\\SimpleNameResolverStaticFactory' => $vendorDir . '/symplify/astral/src/StaticFactory/SimpleNameResolverStaticFactory.php',
|
||||
'RectorPrefix20220303\\Symplify\\Astral\\TypeAnalyzer\\ClassMethodReturnTypeResolver' => $vendorDir . '/symplify/astral/src/TypeAnalyzer/ClassMethodReturnTypeResolver.php',
|
||||
'RectorPrefix20220303\\Symplify\\Astral\\TypeAnalyzer\\ContainsTypeAnalyser' => $vendorDir . '/symplify/astral/src/TypeAnalyzer/ContainsTypeAnalyser.php',
|
||||
'RectorPrefix20220303\\Symplify\\Astral\\ValueObject\\AstralConfig' => $vendorDir . '/symplify/astral/src/ValueObject/AstralConfig.php',
|
||||
'RectorPrefix20220303\\Symplify\\Astral\\ValueObject\\AttributeKey' => $vendorDir . '/symplify/astral/src/ValueObject/AttributeKey.php',
|
||||
|
@ -1759,7 +1760,6 @@ return array(
|
|||
'Rector\\Core\\Php\\PhpVersionResolver\\ProjectComposerJsonPhpVersionResolver' => $baseDir . '/src/Php/PhpVersionResolver/ProjectComposerJsonPhpVersionResolver.php',
|
||||
'Rector\\Core\\Php\\Regex\\RegexPatternArgumentManipulator' => $baseDir . '/src/Php/Regex/RegexPatternArgumentManipulator.php',
|
||||
'Rector\\Core\\Php\\ReservedKeywordAnalyzer' => $baseDir . '/src/Php/ReservedKeywordAnalyzer.php',
|
||||
'Rector\\Core\\Php\\TypeAnalyzer' => $baseDir . '/src/Php/TypeAnalyzer.php',
|
||||
'Rector\\Core\\ProcessAnalyzer\\RectifiedAnalyzer' => $baseDir . '/src/ProcessAnalyzer/RectifiedAnalyzer.php',
|
||||
'Rector\\Core\\Provider\\CurrentFileProvider' => $baseDir . '/src/Provider/CurrentFileProvider.php',
|
||||
'Rector\\Core\\Rector\\AbstractRector' => $baseDir . '/src/Rector/AbstractRector.php',
|
||||
|
@ -2472,6 +2472,8 @@ return array(
|
|||
'Rector\\PHPUnit\\Naming\\TestClassNameResolver' => $vendorDir . '/rector/rector-phpunit/src/Naming/TestClassNameResolver.php',
|
||||
'Rector\\PHPUnit\\NodeAnalyzer\\AssertCallAnalyzer' => $vendorDir . '/rector/rector-phpunit/src/NodeAnalyzer/AssertCallAnalyzer.php',
|
||||
'Rector\\PHPUnit\\NodeAnalyzer\\IdentifierManipulator' => $vendorDir . '/rector/rector-phpunit/src/NodeAnalyzer/IdentifierManipulator.php',
|
||||
'Rector\\PHPUnit\\NodeAnalyzer\\MockedVariableAnalyzer' => $vendorDir . '/rector/rector-phpunit/src/NodeAnalyzer/MockedVariableAnalyzer.php',
|
||||
'Rector\\PHPUnit\\NodeAnalyzer\\SetUpMethodDecorator' => $vendorDir . '/rector/rector-phpunit/src/NodeAnalyzer/SetUpMethodDecorator.php',
|
||||
'Rector\\PHPUnit\\NodeAnalyzer\\TestsNodeAnalyzer' => $vendorDir . '/rector/rector-phpunit/src/NodeAnalyzer/TestsNodeAnalyzer.php',
|
||||
'Rector\\PHPUnit\\NodeFactory\\ArgumentShiftingFactory' => $vendorDir . '/rector/rector-phpunit/src/NodeFactory/ArgumentShiftingFactory.php',
|
||||
'Rector\\PHPUnit\\NodeFactory\\AssertCallFactory' => $vendorDir . '/rector/rector-phpunit/src/NodeFactory/AssertCallFactory.php',
|
||||
|
@ -2710,22 +2712,6 @@ return array(
|
|||
'Rector\\PhpAttribute\\Printer\\PhpAttributeGroupFactory' => $baseDir . '/packages/PhpAttribute/Printer/PhpAttributeGroupFactory.php',
|
||||
'Rector\\PhpAttribute\\RemovableAnnotationAnalyzer' => $baseDir . '/packages/PhpAttribute/RemovableAnnotationAnalyzer.php',
|
||||
'Rector\\PhpAttribute\\UnwrapableAnnotationAnalyzer' => $baseDir . '/packages/PhpAttribute/UnwrapableAnnotationAnalyzer.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\LetManipulator' => $baseDir . '/rules/PhpSpecToPHPUnit/LetManipulator.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\MatchersManipulator' => $baseDir . '/rules/PhpSpecToPHPUnit/MatchersManipulator.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Naming\\PhpSpecRenaming' => $baseDir . '/rules/PhpSpecToPHPUnit/Naming/PhpSpecRenaming.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\NodeFactory\\AssertMethodCallFactory' => $baseDir . '/rules/PhpSpecToPHPUnit/NodeFactory/AssertMethodCallFactory.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\NodeFactory\\BeConstructedWithAssignFactory' => $baseDir . '/rules/PhpSpecToPHPUnit/NodeFactory/BeConstructedWithAssignFactory.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\NodeFactory\\DuringMethodCallFactory' => $baseDir . '/rules/PhpSpecToPHPUnit/NodeFactory/DuringMethodCallFactory.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\PHPUnitTypeDeclarationDecorator' => $baseDir . '/rules/PhpSpecToPHPUnit/PHPUnitTypeDeclarationDecorator.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\PhpSpecMockCollector' => $baseDir . '/rules/PhpSpecToPHPUnit/PhpSpecMockCollector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\AbstractPhpSpecToPHPUnitRector' => $baseDir . '/rules/PhpSpecToPHPUnit/Rector/AbstractPhpSpecToPHPUnitRector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\ClassMethod\\PhpSpecMethodToPHPUnitMethodRector' => $baseDir . '/rules/PhpSpecToPHPUnit/Rector/ClassMethod/PhpSpecMethodToPHPUnitMethodRector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\Class_\\AddMockPropertiesRector' => $baseDir . '/rules/PhpSpecToPHPUnit/Rector/Class_/AddMockPropertiesRector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\Class_\\PhpSpecClassToPHPUnitClassRector' => $baseDir . '/rules/PhpSpecToPHPUnit/Rector/Class_/PhpSpecClassToPHPUnitClassRector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\Class_\\RenameSpecFileToTestFileRector' => $baseDir . '/rules/PhpSpecToPHPUnit/Rector/Class_/RenameSpecFileToTestFileRector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\MethodCall\\PhpSpecMocksToPHPUnitMocksRector' => $baseDir . '/rules/PhpSpecToPHPUnit/Rector/MethodCall/PhpSpecMocksToPHPUnitMocksRector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\MethodCall\\PhpSpecPromisesToPHPUnitAssertRector' => $baseDir . '/rules/PhpSpecToPHPUnit/Rector/MethodCall/PhpSpecPromisesToPHPUnitAssertRector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\Variable\\MockVariableToPropertyFetchRector' => $baseDir . '/rules/PhpSpecToPHPUnit/Rector/Variable/MockVariableToPropertyFetchRector.php',
|
||||
'Rector\\PostRector\\Application\\PostFileProcessor' => $baseDir . '/packages/PostRector/Application/PostFileProcessor.php',
|
||||
'Rector\\PostRector\\Collector\\NodesToAddCollector' => $baseDir . '/packages/PostRector/Collector/NodesToAddCollector.php',
|
||||
'Rector\\PostRector\\Collector\\NodesToRemoveCollector' => $baseDir . '/packages/PostRector/Collector/NodesToRemoveCollector.php',
|
||||
|
|
14
vendor/composer/autoload_real.php
vendored
14
vendor/composer/autoload_real.php
vendored
|
@ -2,7 +2,7 @@
|
|||
|
||||
// autoload_real.php @generated by Composer
|
||||
|
||||
class ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f
|
||||
class ComposerAutoloaderInitfed58148328b154b90a12011aecf4137
|
||||
{
|
||||
private static $loader;
|
||||
|
||||
|
@ -22,15 +22,15 @@ class ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f
|
|||
return self::$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f', 'loadClassLoader'), true, true);
|
||||
spl_autoload_register(array('ComposerAutoloaderInitfed58148328b154b90a12011aecf4137', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f', 'loadClassLoader'));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInitfed58148328b154b90a12011aecf4137', '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\ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f::getInitializer($loader));
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInitfed58148328b154b90a12011aecf4137::getInitializer($loader));
|
||||
} else {
|
||||
$classMap = require __DIR__ . '/autoload_classmap.php';
|
||||
if ($classMap) {
|
||||
|
@ -42,12 +42,12 @@ class ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f
|
|||
$loader->register(true);
|
||||
|
||||
if ($useStaticLoader) {
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f::$files;
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInitfed58148328b154b90a12011aecf4137::$files;
|
||||
} else {
|
||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
||||
}
|
||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||
composerRequirec291b87a1b4ce0b46a8e2f223b98b62f($fileIdentifier, $file);
|
||||
composerRequirefed58148328b154b90a12011aecf4137($fileIdentifier, $file);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
|
@ -59,7 +59,7 @@ class ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f
|
|||
* @param string $file
|
||||
* @return void
|
||||
*/
|
||||
function composerRequirec291b87a1b4ce0b46a8e2f223b98b62f($fileIdentifier, $file)
|
||||
function composerRequirefed58148328b154b90a12011aecf4137($fileIdentifier, $file)
|
||||
{
|
||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||
|
|
28
vendor/composer/autoload_static.php
vendored
28
vendor/composer/autoload_static.php
vendored
|
@ -4,7 +4,7 @@
|
|||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
class ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f
|
||||
class ComposerStaticInitfed58148328b154b90a12011aecf4137
|
||||
{
|
||||
public static $files = array (
|
||||
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
|
||||
|
@ -1565,6 +1565,7 @@ class ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f
|
|||
'RectorPrefix20220303\\Symplify\\Astral\\Reflection\\ReflectionParser' => __DIR__ . '/..' . '/symplify/astral/src/Reflection/ReflectionParser.php',
|
||||
'RectorPrefix20220303\\Symplify\\Astral\\StaticFactory\\NodeValueResolverStaticFactory' => __DIR__ . '/..' . '/symplify/astral/src/StaticFactory/NodeValueResolverStaticFactory.php',
|
||||
'RectorPrefix20220303\\Symplify\\Astral\\StaticFactory\\SimpleNameResolverStaticFactory' => __DIR__ . '/..' . '/symplify/astral/src/StaticFactory/SimpleNameResolverStaticFactory.php',
|
||||
'RectorPrefix20220303\\Symplify\\Astral\\TypeAnalyzer\\ClassMethodReturnTypeResolver' => __DIR__ . '/..' . '/symplify/astral/src/TypeAnalyzer/ClassMethodReturnTypeResolver.php',
|
||||
'RectorPrefix20220303\\Symplify\\Astral\\TypeAnalyzer\\ContainsTypeAnalyser' => __DIR__ . '/..' . '/symplify/astral/src/TypeAnalyzer/ContainsTypeAnalyser.php',
|
||||
'RectorPrefix20220303\\Symplify\\Astral\\ValueObject\\AstralConfig' => __DIR__ . '/..' . '/symplify/astral/src/ValueObject/AstralConfig.php',
|
||||
'RectorPrefix20220303\\Symplify\\Astral\\ValueObject\\AttributeKey' => __DIR__ . '/..' . '/symplify/astral/src/ValueObject/AttributeKey.php',
|
||||
|
@ -2133,7 +2134,6 @@ class ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f
|
|||
'Rector\\Core\\Php\\PhpVersionResolver\\ProjectComposerJsonPhpVersionResolver' => __DIR__ . '/../..' . '/src/Php/PhpVersionResolver/ProjectComposerJsonPhpVersionResolver.php',
|
||||
'Rector\\Core\\Php\\Regex\\RegexPatternArgumentManipulator' => __DIR__ . '/../..' . '/src/Php/Regex/RegexPatternArgumentManipulator.php',
|
||||
'Rector\\Core\\Php\\ReservedKeywordAnalyzer' => __DIR__ . '/../..' . '/src/Php/ReservedKeywordAnalyzer.php',
|
||||
'Rector\\Core\\Php\\TypeAnalyzer' => __DIR__ . '/../..' . '/src/Php/TypeAnalyzer.php',
|
||||
'Rector\\Core\\ProcessAnalyzer\\RectifiedAnalyzer' => __DIR__ . '/../..' . '/src/ProcessAnalyzer/RectifiedAnalyzer.php',
|
||||
'Rector\\Core\\Provider\\CurrentFileProvider' => __DIR__ . '/../..' . '/src/Provider/CurrentFileProvider.php',
|
||||
'Rector\\Core\\Rector\\AbstractRector' => __DIR__ . '/../..' . '/src/Rector/AbstractRector.php',
|
||||
|
@ -2846,6 +2846,8 @@ class ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f
|
|||
'Rector\\PHPUnit\\Naming\\TestClassNameResolver' => __DIR__ . '/..' . '/rector/rector-phpunit/src/Naming/TestClassNameResolver.php',
|
||||
'Rector\\PHPUnit\\NodeAnalyzer\\AssertCallAnalyzer' => __DIR__ . '/..' . '/rector/rector-phpunit/src/NodeAnalyzer/AssertCallAnalyzer.php',
|
||||
'Rector\\PHPUnit\\NodeAnalyzer\\IdentifierManipulator' => __DIR__ . '/..' . '/rector/rector-phpunit/src/NodeAnalyzer/IdentifierManipulator.php',
|
||||
'Rector\\PHPUnit\\NodeAnalyzer\\MockedVariableAnalyzer' => __DIR__ . '/..' . '/rector/rector-phpunit/src/NodeAnalyzer/MockedVariableAnalyzer.php',
|
||||
'Rector\\PHPUnit\\NodeAnalyzer\\SetUpMethodDecorator' => __DIR__ . '/..' . '/rector/rector-phpunit/src/NodeAnalyzer/SetUpMethodDecorator.php',
|
||||
'Rector\\PHPUnit\\NodeAnalyzer\\TestsNodeAnalyzer' => __DIR__ . '/..' . '/rector/rector-phpunit/src/NodeAnalyzer/TestsNodeAnalyzer.php',
|
||||
'Rector\\PHPUnit\\NodeFactory\\ArgumentShiftingFactory' => __DIR__ . '/..' . '/rector/rector-phpunit/src/NodeFactory/ArgumentShiftingFactory.php',
|
||||
'Rector\\PHPUnit\\NodeFactory\\AssertCallFactory' => __DIR__ . '/..' . '/rector/rector-phpunit/src/NodeFactory/AssertCallFactory.php',
|
||||
|
@ -3084,22 +3086,6 @@ class ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f
|
|||
'Rector\\PhpAttribute\\Printer\\PhpAttributeGroupFactory' => __DIR__ . '/../..' . '/packages/PhpAttribute/Printer/PhpAttributeGroupFactory.php',
|
||||
'Rector\\PhpAttribute\\RemovableAnnotationAnalyzer' => __DIR__ . '/../..' . '/packages/PhpAttribute/RemovableAnnotationAnalyzer.php',
|
||||
'Rector\\PhpAttribute\\UnwrapableAnnotationAnalyzer' => __DIR__ . '/../..' . '/packages/PhpAttribute/UnwrapableAnnotationAnalyzer.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\LetManipulator' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/LetManipulator.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\MatchersManipulator' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/MatchersManipulator.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Naming\\PhpSpecRenaming' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/Naming/PhpSpecRenaming.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\NodeFactory\\AssertMethodCallFactory' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/NodeFactory/AssertMethodCallFactory.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\NodeFactory\\BeConstructedWithAssignFactory' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/NodeFactory/BeConstructedWithAssignFactory.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\NodeFactory\\DuringMethodCallFactory' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/NodeFactory/DuringMethodCallFactory.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\PHPUnitTypeDeclarationDecorator' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/PHPUnitTypeDeclarationDecorator.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\PhpSpecMockCollector' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/PhpSpecMockCollector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\AbstractPhpSpecToPHPUnitRector' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/Rector/AbstractPhpSpecToPHPUnitRector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\ClassMethod\\PhpSpecMethodToPHPUnitMethodRector' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/Rector/ClassMethod/PhpSpecMethodToPHPUnitMethodRector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\Class_\\AddMockPropertiesRector' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/Rector/Class_/AddMockPropertiesRector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\Class_\\PhpSpecClassToPHPUnitClassRector' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/Rector/Class_/PhpSpecClassToPHPUnitClassRector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\Class_\\RenameSpecFileToTestFileRector' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/Rector/Class_/RenameSpecFileToTestFileRector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\MethodCall\\PhpSpecMocksToPHPUnitMocksRector' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/Rector/MethodCall/PhpSpecMocksToPHPUnitMocksRector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\MethodCall\\PhpSpecPromisesToPHPUnitAssertRector' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/Rector/MethodCall/PhpSpecPromisesToPHPUnitAssertRector.php',
|
||||
'Rector\\PhpSpecToPHPUnit\\Rector\\Variable\\MockVariableToPropertyFetchRector' => __DIR__ . '/../..' . '/rules/PhpSpecToPHPUnit/Rector/Variable/MockVariableToPropertyFetchRector.php',
|
||||
'Rector\\PostRector\\Application\\PostFileProcessor' => __DIR__ . '/../..' . '/packages/PostRector/Application/PostFileProcessor.php',
|
||||
'Rector\\PostRector\\Collector\\NodesToAddCollector' => __DIR__ . '/../..' . '/packages/PostRector/Collector/NodesToAddCollector.php',
|
||||
'Rector\\PostRector\\Collector\\NodesToRemoveCollector' => __DIR__ . '/../..' . '/packages/PostRector/Collector/NodesToRemoveCollector.php',
|
||||
|
@ -3845,9 +3831,9 @@ class ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f
|
|||
public static function getInitializer(ClassLoader $loader)
|
||||
{
|
||||
return \Closure::bind(function () use ($loader) {
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f::$classMap;
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInitfed58148328b154b90a12011aecf4137::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInitfed58148328b154b90a12011aecf4137::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInitfed58148328b154b90a12011aecf4137::$classMap;
|
||||
|
||||
}, null, ClassLoader::class);
|
||||
}
|
||||
|
|
771
vendor/composer/installed.json
vendored
771
vendor/composer/installed.json
vendored
File diff suppressed because it is too large
Load Diff
2
vendor/composer/installed.php
vendored
2
vendor/composer/installed.php
vendored
File diff suppressed because one or more lines are too long
|
@ -9,7 +9,7 @@ namespace Rector\RectorInstaller;
|
|||
*/
|
||||
final class GeneratedConfig
|
||||
{
|
||||
public const EXTENSIONS = array('rector/rector-cakephp' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-cakephp', 'relative_install_path' => '../../rector-cakephp', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main d1fa93d'), 'rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 9cc03db'), 'rector/rector-generator' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-generator', 'relative_install_path' => '../../rector-generator', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main df58e86'), 'rector/rector-laravel' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-laravel', 'relative_install_path' => '../../rector-laravel', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 6bee428'), 'rector/rector-nette' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-nette', 'relative_install_path' => '../../rector-nette', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main fbfa93c'), 'rector/rector-phpoffice' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpoffice', 'relative_install_path' => '../../rector-phpoffice', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main f23c4bf'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 139b5da'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 5c1486a'), 'ssch/typo3-rector' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/ssch/typo3-rector', 'relative_install_path' => '../../../ssch/typo3-rector', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 983908f'));
|
||||
public const EXTENSIONS = array('rector/rector-cakephp' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-cakephp', 'relative_install_path' => '../../rector-cakephp', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main d1fa93d'), 'rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 9cc03db'), 'rector/rector-generator' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-generator', 'relative_install_path' => '../../rector-generator', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main df58e86'), 'rector/rector-laravel' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-laravel', 'relative_install_path' => '../../rector-laravel', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 6bee428'), 'rector/rector-nette' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-nette', 'relative_install_path' => '../../rector-nette', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main fbfa93c'), 'rector/rector-phpoffice' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpoffice', 'relative_install_path' => '../../rector-phpoffice', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main f23c4bf'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 5952218'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 5c1486a'), 'ssch/typo3-rector' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/ssch/typo3-rector', 'relative_install_path' => '../../../ssch/typo3-rector', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 983908f'));
|
||||
private function __construct()
|
||||
{
|
||||
}
|
||||
|
|
4
vendor/rector/rector-phpunit/rector.php
vendored
4
vendor/rector/rector-phpunit/rector.php
vendored
|
@ -30,8 +30,8 @@ return static function (\Symfony\Component\DependencyInjection\Loader\Configurat
|
|||
$services = $containerConfigurator->services();
|
||||
$services->set(\Rector\Php55\Rector\String_\StringClassNameToClassConstantRector::class)->configure([
|
||||
// keep unprefixed to protected from downgrade
|
||||
'PHPUnit\\Framework\\MockObject\\MockBuilder',
|
||||
'PHPUnit\\Framework\\MockObject\\MockObject',
|
||||
'PHPUnit\\Framework\\MockObject\\*',
|
||||
'PHPUnit\\Framework\\TestCase',
|
||||
'Prophecy\\Prophet',
|
||||
]);
|
||||
};
|
||||
|
|
49
vendor/rector/rector-phpunit/src/NodeAnalyzer/MockedVariableAnalyzer.php
vendored
Normal file
49
vendor/rector/rector-phpunit/src/NodeAnalyzer/MockedVariableAnalyzer.php
vendored
Normal file
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PHPUnit\NodeAnalyzer;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Expr\PropertyFetch;
|
||||
use PhpParser\Node\Expr\Variable;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PHPStan\Type\MixedType;
|
||||
use PHPStan\Type\ObjectType;
|
||||
use Rector\NodeTypeResolver\NodeTypeResolver;
|
||||
use RectorPrefix20220303\Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser;
|
||||
final class MockedVariableAnalyzer
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser
|
||||
*/
|
||||
private $simpleCallableNodeTraverser;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\NodeTypeResolver\NodeTypeResolver
|
||||
*/
|
||||
private $nodeTypeResolver;
|
||||
public function __construct(\RectorPrefix20220303\Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser $simpleCallableNodeTraverser, \Rector\NodeTypeResolver\NodeTypeResolver $nodeTypeResolver)
|
||||
{
|
||||
$this->simpleCallableNodeTraverser = $simpleCallableNodeTraverser;
|
||||
$this->nodeTypeResolver = $nodeTypeResolver;
|
||||
}
|
||||
public function containsMockAsUsedVariable(\PhpParser\Node\Stmt\ClassMethod $classMethod) : bool
|
||||
{
|
||||
$doesContainMock = \false;
|
||||
$this->simpleCallableNodeTraverser->traverseNodesWithCallable($classMethod, function (\PhpParser\Node $node) use(&$doesContainMock) {
|
||||
if (!$node instanceof \PhpParser\Node\Expr\PropertyFetch && !$node instanceof \PhpParser\Node\Expr\Variable) {
|
||||
return null;
|
||||
}
|
||||
$variableType = $this->nodeTypeResolver->getType($node);
|
||||
if ($variableType instanceof \PHPStan\Type\MixedType) {
|
||||
return null;
|
||||
}
|
||||
if ($variableType->isSuperTypeOf(new \PHPStan\Type\ObjectType('PHPUnit\\Framework\\MockObject\\MockObject'))->yes()) {
|
||||
$doesContainMock = \true;
|
||||
}
|
||||
return null;
|
||||
});
|
||||
return $doesContainMock;
|
||||
}
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\PhpSpecToPHPUnit;
|
||||
namespace Rector\PHPUnit\NodeAnalyzer;
|
||||
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use Rector\Core\PhpParser\AstResolver;
|
||||
|
@ -10,7 +10,7 @@ use Rector\Testing\PHPUnit\StaticPHPUnitEnvironment;
|
|||
/**
|
||||
* Decorate setUp() and tearDown() with "void" when local TestClass class uses them
|
||||
*/
|
||||
final class PHPUnitTypeDeclarationDecorator
|
||||
final class SetUpMethodDecorator
|
||||
{
|
||||
/**
|
||||
* @readonly
|
|
@ -10,16 +10,16 @@ use PhpParser\Node\Stmt\Expression;
|
|||
use Rector\Core\Enum\ObjectReference;
|
||||
use Rector\Core\PhpParser\Node\NodeFactory;
|
||||
use Rector\Core\ValueObject\MethodName;
|
||||
use Rector\PhpSpecToPHPUnit\PHPUnitTypeDeclarationDecorator;
|
||||
use Rector\PHPUnit\NodeAnalyzer\SetUpMethodDecorator;
|
||||
use Rector\PHPUnit\NodeManipulator\StmtManipulator;
|
||||
use RectorPrefix20220303\Symplify\Astral\ValueObject\NodeBuilder\MethodBuilder;
|
||||
final class SetUpClassMethodFactory
|
||||
{
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PhpSpecToPHPUnit\PHPUnitTypeDeclarationDecorator
|
||||
* @var \Rector\PHPUnit\NodeAnalyzer\SetUpMethodDecorator
|
||||
*/
|
||||
private $phpUnitTypeDeclarationDecorator;
|
||||
private $setUpMethodDecorator;
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PHPUnit\NodeManipulator\StmtManipulator
|
||||
|
@ -30,9 +30,9 @@ final class SetUpClassMethodFactory
|
|||
* @var \Rector\Core\PhpParser\Node\NodeFactory
|
||||
*/
|
||||
private $nodeFactory;
|
||||
public function __construct(\Rector\PhpSpecToPHPUnit\PHPUnitTypeDeclarationDecorator $phpUnitTypeDeclarationDecorator, \Rector\PHPUnit\NodeManipulator\StmtManipulator $stmtManipulator, \Rector\Core\PhpParser\Node\NodeFactory $nodeFactory)
|
||||
public function __construct(\Rector\PHPUnit\NodeAnalyzer\SetUpMethodDecorator $setUpMethodDecorator, \Rector\PHPUnit\NodeManipulator\StmtManipulator $stmtManipulator, \Rector\Core\PhpParser\Node\NodeFactory $nodeFactory)
|
||||
{
|
||||
$this->phpUnitTypeDeclarationDecorator = $phpUnitTypeDeclarationDecorator;
|
||||
$this->setUpMethodDecorator = $setUpMethodDecorator;
|
||||
$this->stmtManipulator = $stmtManipulator;
|
||||
$this->nodeFactory = $nodeFactory;
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ final class SetUpClassMethodFactory
|
|||
$classMethodBuilder->addStmt($this->createParentStaticCall());
|
||||
$classMethodBuilder->addStmts($stmts);
|
||||
$classMethod = $classMethodBuilder->getNode();
|
||||
$this->phpUnitTypeDeclarationDecorator->decorate($classMethod);
|
||||
$this->setUpMethodDecorator->decorate($classMethod);
|
||||
return $classMethod;
|
||||
}
|
||||
public function createParentStaticCall() : \PhpParser\Node\Stmt\Expression
|
||||
|
|
|
@ -4,15 +4,12 @@ declare (strict_types=1);
|
|||
namespace Rector\PHPUnit\Rector\ClassMethod;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Expr\PropertyFetch;
|
||||
use PhpParser\Node\Expr\Variable;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode;
|
||||
use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode;
|
||||
use PHPStan\Type\MixedType;
|
||||
use PHPStan\Type\ObjectType;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\PHPUnit\NodeAnalyzer\AssertCallAnalyzer;
|
||||
use Rector\PHPUnit\NodeAnalyzer\MockedVariableAnalyzer;
|
||||
use Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
|
@ -34,10 +31,16 @@ final class AddDoesNotPerformAssertionToNonAssertingTestRector extends \Rector\C
|
|||
* @var \Rector\PHPUnit\NodeAnalyzer\AssertCallAnalyzer
|
||||
*/
|
||||
private $assertCallAnalyzer;
|
||||
public function __construct(\Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer $testsNodeAnalyzer, \Rector\PHPUnit\NodeAnalyzer\AssertCallAnalyzer $assertCallAnalyzer)
|
||||
/**
|
||||
* @readonly
|
||||
* @var \Rector\PHPUnit\NodeAnalyzer\MockedVariableAnalyzer
|
||||
*/
|
||||
private $mockedVariableAnalyzer;
|
||||
public function __construct(\Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer $testsNodeAnalyzer, \Rector\PHPUnit\NodeAnalyzer\AssertCallAnalyzer $assertCallAnalyzer, \Rector\PHPUnit\NodeAnalyzer\MockedVariableAnalyzer $mockedVariableAnalyzer)
|
||||
{
|
||||
$this->testsNodeAnalyzer = $testsNodeAnalyzer;
|
||||
$this->assertCallAnalyzer = $assertCallAnalyzer;
|
||||
$this->mockedVariableAnalyzer = $mockedVariableAnalyzer;
|
||||
}
|
||||
public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition
|
||||
{
|
||||
|
@ -102,29 +105,11 @@ CODE_SAMPLE
|
|||
if ($this->assertCallAnalyzer->containsAssertCall($classMethod)) {
|
||||
return \true;
|
||||
}
|
||||
return $this->containsMockAsUsedVariable($classMethod);
|
||||
return $this->mockedVariableAnalyzer->containsMockAsUsedVariable($classMethod);
|
||||
}
|
||||
private function addDoesNotPerformAssertions(\PhpParser\Node\Stmt\ClassMethod $classMethod) : void
|
||||
{
|
||||
$phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($classMethod);
|
||||
$phpDocInfo->addPhpDocTagNode(new \PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode('@doesNotPerformAssertions', new \PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode('')));
|
||||
}
|
||||
private function containsMockAsUsedVariable(\PhpParser\Node\Stmt\ClassMethod $classMethod) : bool
|
||||
{
|
||||
$doesContainMock = \false;
|
||||
$this->traverseNodesWithCallable($classMethod, function (\PhpParser\Node $node) use(&$doesContainMock) {
|
||||
if (!$node instanceof \PhpParser\Node\Expr\PropertyFetch && !$node instanceof \PhpParser\Node\Expr\Variable) {
|
||||
return null;
|
||||
}
|
||||
$variableType = $this->getType($node);
|
||||
if ($variableType instanceof \PHPStan\Type\MixedType) {
|
||||
return null;
|
||||
}
|
||||
if ($variableType->isSuperTypeOf(new \PHPStan\Type\ObjectType('PHPUnit\\Framework\\MockObject\\MockObject'))->yes()) {
|
||||
$doesContainMock = \true;
|
||||
}
|
||||
return null;
|
||||
});
|
||||
return $doesContainMock;
|
||||
}
|
||||
}
|
||||
|
|
10
vendor/scoper-autoload.php
vendored
10
vendor/scoper-autoload.php
vendored
|
@ -9,8 +9,8 @@ $loader = require_once __DIR__.'/autoload.php';
|
|||
if (!class_exists('AutoloadIncluder', false) && !interface_exists('AutoloadIncluder', false) && !trait_exists('AutoloadIncluder', false)) {
|
||||
spl_autoload_call('RectorPrefix20220303\AutoloadIncluder');
|
||||
}
|
||||
if (!class_exists('ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f', false) && !interface_exists('ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f', false) && !trait_exists('ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f', false)) {
|
||||
spl_autoload_call('RectorPrefix20220303\ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f');
|
||||
if (!class_exists('ComposerAutoloaderInitfed58148328b154b90a12011aecf4137', false) && !interface_exists('ComposerAutoloaderInitfed58148328b154b90a12011aecf4137', false) && !trait_exists('ComposerAutoloaderInitfed58148328b154b90a12011aecf4137', false)) {
|
||||
spl_autoload_call('RectorPrefix20220303\ComposerAutoloaderInitfed58148328b154b90a12011aecf4137');
|
||||
}
|
||||
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('RectorPrefix20220303\Helmich\TypoScriptParser\Parser\AST\Statement');
|
||||
|
@ -59,9 +59,9 @@ if (!function_exists('print_node')) {
|
|||
return \RectorPrefix20220303\print_node(...func_get_args());
|
||||
}
|
||||
}
|
||||
if (!function_exists('composerRequirec291b87a1b4ce0b46a8e2f223b98b62f')) {
|
||||
function composerRequirec291b87a1b4ce0b46a8e2f223b98b62f() {
|
||||
return \RectorPrefix20220303\composerRequirec291b87a1b4ce0b46a8e2f223b98b62f(...func_get_args());
|
||||
if (!function_exists('composerRequirefed58148328b154b90a12011aecf4137')) {
|
||||
function composerRequirefed58148328b154b90a12011aecf4137() {
|
||||
return \RectorPrefix20220303\composerRequirefed58148328b154b90a12011aecf4137(...func_get_args());
|
||||
}
|
||||
}
|
||||
if (!function_exists('scanPath')) {
|
||||
|
|
57
vendor/symplify/astral/composer.json
vendored
57
vendor/symplify/astral/composer.json
vendored
|
@ -7,16 +7,16 @@
|
|||
"php": ">=8.0",
|
||||
"nette\/utils": "^3.2",
|
||||
"symfony\/dependency-injection": "^5.4|^6.0",
|
||||
"symplify\/smart-file-system": "^10.1",
|
||||
"symplify\/smart-file-system": "^10.1.1",
|
||||
"phpstan\/phpstan": "^1.4.6",
|
||||
"phpstan\/phpdoc-parser": "^1.2",
|
||||
"symfony\/config": "^5.4|^6.0",
|
||||
"nikic\/php-parser": "^4.13.2",
|
||||
"symplify\/package-builder": "^10.1",
|
||||
"symplify\/symplify-kernel": "^10.1"
|
||||
"symplify\/package-builder": "^10.1.1",
|
||||
"symplify\/symplify-kernel": "^10.1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"symplify\/easy-testing": "^10.1",
|
||||
"symplify\/easy-testing": "^10.1.1",
|
||||
"phpunit\/phpunit": "^9.5"
|
||||
},
|
||||
"autoload": {
|
||||
|
@ -31,7 +31,7 @@
|
|||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "10.1-dev"
|
||||
"dev-main": "10.2-dev"
|
||||
},
|
||||
"phpstan": {
|
||||
"includes": [
|
||||
|
@ -40,32 +40,31 @@
|
|||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/composer-json-manipulator": "<10.1.0",
|
||||
"symplify\/easy-coding-standard": "<10.1.0",
|
||||
"symplify\/phpstan-rules": "<10.1.0",
|
||||
"symplify\/easy-testing": "<10.1.0",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.0",
|
||||
"symplify\/php-config-printer": "<10.1.0",
|
||||
"symplify\/markdown-diff": "<10.1.0",
|
||||
"symplify\/amnesia": "<10.1.0",
|
||||
"symplify\/phpstan-extensions": "<10.1.0",
|
||||
"symplify\/rule-doc-generator": "<10.1.0",
|
||||
"symplify\/vendor-patches": "<10.1.0",
|
||||
"symplify\/skipper": "<10.1.0",
|
||||
"symplify\/composer-json-manipulator": "<10.1.1",
|
||||
"symplify\/easy-coding-standard": "<10.1.1",
|
||||
"symplify\/phpstan-rules": "<10.1.1",
|
||||
"symplify\/easy-testing": "<10.1.1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.1",
|
||||
"symplify\/php-config-printer": "<10.1.1",
|
||||
"symplify\/amnesia": "<10.1.1",
|
||||
"symplify\/phpstan-extensions": "<10.1.1",
|
||||
"symplify\/rule-doc-generator": "<10.1.1",
|
||||
"symplify\/vendor-patches": "<10.1.1",
|
||||
"symplify\/skipper": "<10.1.1",
|
||||
"symplify\/smart-file-system": "<9.4.70",
|
||||
"symplify\/symfony-static-dumper": "<10.1.0",
|
||||
"symplify\/git-wrapper": "<10.1.0",
|
||||
"symplify\/symfony-static-dumper": "<10.1.1",
|
||||
"symplify\/git-wrapper": "<10.1.1",
|
||||
"symplify\/symplify-kernel": "<9.4.70",
|
||||
"symplify\/monorepo-builder": "<10.1.0",
|
||||
"symplify\/config-transformer": "<10.1.0",
|
||||
"symplify\/easy-ci": "<10.1.0",
|
||||
"symplify\/coding-standard": "<10.1.0",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.0",
|
||||
"symplify\/autowire-array-parameter": "<10.1.0",
|
||||
"symplify\/easy-parallel": "<10.1.0",
|
||||
"symplify\/neon-config-dumper": "<10.1.0"
|
||||
"symplify\/monorepo-builder": "<10.1.1",
|
||||
"symplify\/config-transformer": "<10.1.1",
|
||||
"symplify\/easy-ci": "<10.1.1",
|
||||
"symplify\/coding-standard": "<10.1.1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.1",
|
||||
"symplify\/autowire-array-parameter": "<10.1.1",
|
||||
"symplify\/easy-parallel": "<10.1.1",
|
||||
"symplify\/neon-config-dumper": "<10.1.1"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
1
vendor/symplify/astral/config/services.neon
vendored
1
vendor/symplify/astral/config/services.neon
vendored
|
@ -25,3 +25,4 @@ services:
|
|||
- Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser
|
||||
|
||||
- Symplify\Astral\TypeAnalyzer\ContainsTypeAnalyser
|
||||
- Symplify\Astral\TypeAnalyzer\ClassMethodReturnTypeResolver
|
||||
|
|
|
@ -57,8 +57,8 @@ final class FuncCallValueResolver implements \RectorPrefix20220303\Symplify\Astr
|
|||
if (!$this->isAllowedFunctionName($functionName)) {
|
||||
return null;
|
||||
}
|
||||
if (\function_exists($functionName) && \is_callable($functionName)) {
|
||||
return \call_user_func_array($functionName, $arguments);
|
||||
if (\function_exists($functionName)) {
|
||||
return $functionName(...$arguments);
|
||||
}
|
||||
throw new \RectorPrefix20220303\Symplify\Astral\Exception\ShouldNotHappenException();
|
||||
}
|
||||
|
|
45
vendor/symplify/astral/src/TypeAnalyzer/ClassMethodReturnTypeResolver.php
vendored
Normal file
45
vendor/symplify/astral/src/TypeAnalyzer/ClassMethodReturnTypeResolver.php
vendored
Normal file
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace RectorPrefix20220303\Symplify\Astral\TypeAnalyzer;
|
||||
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PHPStan\Analyser\Scope;
|
||||
use PHPStan\Reflection\ClassReflection;
|
||||
use PHPStan\Reflection\FunctionVariant;
|
||||
use PHPStan\Reflection\ParametersAcceptorSelector;
|
||||
use PHPStan\Type\MixedType;
|
||||
use PHPStan\Type\Type;
|
||||
use RectorPrefix20220303\Symplify\Astral\Exception\ShouldNotHappenException;
|
||||
use RectorPrefix20220303\Symplify\Astral\Naming\SimpleNameResolver;
|
||||
/**
|
||||
* @api
|
||||
*/
|
||||
final class ClassMethodReturnTypeResolver
|
||||
{
|
||||
/**
|
||||
* @var \Symplify\Astral\Naming\SimpleNameResolver
|
||||
*/
|
||||
private $simpleNameResolver;
|
||||
public function __construct(\RectorPrefix20220303\Symplify\Astral\Naming\SimpleNameResolver $simpleNameResolver)
|
||||
{
|
||||
$this->simpleNameResolver = $simpleNameResolver;
|
||||
}
|
||||
public function resolve(\PhpParser\Node\Stmt\ClassMethod $classMethod, \PHPStan\Analyser\Scope $scope) : \PHPStan\Type\Type
|
||||
{
|
||||
$methodName = $this->simpleNameResolver->getName($classMethod);
|
||||
if (!\is_string($methodName)) {
|
||||
throw new \RectorPrefix20220303\Symplify\Astral\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$classReflection = $scope->getClassReflection();
|
||||
if (!$classReflection instanceof \PHPStan\Reflection\ClassReflection) {
|
||||
return new \PHPStan\Type\MixedType();
|
||||
}
|
||||
$methodReflection = $classReflection->getMethod($methodName, $scope);
|
||||
$functionVariant = \PHPStan\Reflection\ParametersAcceptorSelector::selectSingle($methodReflection->getVariants());
|
||||
if (!$functionVariant instanceof \PHPStan\Reflection\FunctionVariant) {
|
||||
return new \PHPStan\Type\MixedType();
|
||||
}
|
||||
return $functionVariant->getReturnType();
|
||||
}
|
||||
}
|
|
@ -6,7 +6,7 @@
|
|||
"php": ">=8.0",
|
||||
"nette\/utils": "^3.2",
|
||||
"symfony\/dependency-injection": "^5.4|^6.0",
|
||||
"symplify\/package-builder": "^10.1"
|
||||
"symplify\/package-builder": "^10.1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit\/phpunit": "^9.5"
|
||||
|
@ -23,36 +23,35 @@
|
|||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "10.1-dev"
|
||||
"dev-main": "10.2-dev"
|
||||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.1.0",
|
||||
"symplify\/composer-json-manipulator": "<10.1.0",
|
||||
"symplify\/easy-coding-standard": "<10.1.0",
|
||||
"symplify\/phpstan-rules": "<10.1.0",
|
||||
"symplify\/easy-testing": "<10.1.0",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.0",
|
||||
"symplify\/php-config-printer": "<10.1.0",
|
||||
"symplify\/markdown-diff": "<10.1.0",
|
||||
"symplify\/amnesia": "<10.1.0",
|
||||
"symplify\/phpstan-extensions": "<10.1.0",
|
||||
"symplify\/rule-doc-generator": "<10.1.0",
|
||||
"symplify\/vendor-patches": "<10.1.0",
|
||||
"symplify\/skipper": "<10.1.0",
|
||||
"symplify\/smart-file-system": "<10.1.0",
|
||||
"symplify\/symfony-static-dumper": "<10.1.0",
|
||||
"symplify\/git-wrapper": "<10.1.0",
|
||||
"symplify\/symplify-kernel": "<10.1.0",
|
||||
"symplify\/monorepo-builder": "<10.1.0",
|
||||
"symplify\/config-transformer": "<10.1.0",
|
||||
"symplify\/easy-ci": "<10.1.0",
|
||||
"symplify\/coding-standard": "<10.1.0",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.0",
|
||||
"symplify\/easy-parallel": "<10.1.0",
|
||||
"symplify\/neon-config-dumper": "<10.1.0"
|
||||
"symplify\/astral": "<10.1.1",
|
||||
"symplify\/composer-json-manipulator": "<10.1.1",
|
||||
"symplify\/easy-coding-standard": "<10.1.1",
|
||||
"symplify\/phpstan-rules": "<10.1.1",
|
||||
"symplify\/easy-testing": "<10.1.1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.1",
|
||||
"symplify\/php-config-printer": "<10.1.1",
|
||||
"symplify\/amnesia": "<10.1.1",
|
||||
"symplify\/phpstan-extensions": "<10.1.1",
|
||||
"symplify\/rule-doc-generator": "<10.1.1",
|
||||
"symplify\/vendor-patches": "<10.1.1",
|
||||
"symplify\/skipper": "<10.1.1",
|
||||
"symplify\/smart-file-system": "<10.1.1",
|
||||
"symplify\/symfony-static-dumper": "<10.1.1",
|
||||
"symplify\/git-wrapper": "<10.1.1",
|
||||
"symplify\/symplify-kernel": "<10.1.1",
|
||||
"symplify\/monorepo-builder": "<10.1.1",
|
||||
"symplify\/config-transformer": "<10.1.1",
|
||||
"symplify\/easy-ci": "<10.1.1",
|
||||
"symplify\/coding-standard": "<10.1.1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.1",
|
||||
"symplify\/easy-parallel": "<10.1.1",
|
||||
"symplify\/neon-config-dumper": "<10.1.1"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
"symfony\/config": "^5.4|^6.0",
|
||||
"symfony\/dependency-injection": "^5.4|^6.0",
|
||||
"symfony\/filesystem": "^5.4|^6.0",
|
||||
"symplify\/package-builder": "^10.1",
|
||||
"symplify\/symplify-kernel": "^10.1",
|
||||
"symplify\/smart-file-system": "^10.1"
|
||||
"symplify\/package-builder": "^10.1.1",
|
||||
"symplify\/symplify-kernel": "^10.1.1",
|
||||
"symplify\/smart-file-system": "^10.1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit\/phpunit": "^9.5"
|
||||
|
@ -28,35 +28,34 @@
|
|||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "10.1-dev"
|
||||
"dev-main": "10.2-dev"
|
||||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.1.0",
|
||||
"symplify\/easy-coding-standard": "<10.1.0",
|
||||
"symplify\/phpstan-rules": "<10.1.0",
|
||||
"symplify\/easy-testing": "<10.1.0",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.0",
|
||||
"symplify\/php-config-printer": "<10.1.0",
|
||||
"symplify\/autowire-array-parameter": "<10.1.0",
|
||||
"symplify\/markdown-diff": "<10.1.0",
|
||||
"symplify\/amnesia": "<10.1.0",
|
||||
"symplify\/phpstan-extensions": "<10.1.0",
|
||||
"symplify\/rule-doc-generator": "<10.1.0",
|
||||
"symplify\/vendor-patches": "<10.1.0",
|
||||
"symplify\/skipper": "<10.1.0",
|
||||
"symplify\/symfony-static-dumper": "<10.1.0",
|
||||
"symplify\/git-wrapper": "<10.1.0",
|
||||
"symplify\/astral": "<10.1.1",
|
||||
"symplify\/easy-coding-standard": "<10.1.1",
|
||||
"symplify\/phpstan-rules": "<10.1.1",
|
||||
"symplify\/easy-testing": "<10.1.1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.1",
|
||||
"symplify\/php-config-printer": "<10.1.1",
|
||||
"symplify\/autowire-array-parameter": "<10.1.1",
|
||||
"symplify\/amnesia": "<10.1.1",
|
||||
"symplify\/phpstan-extensions": "<10.1.1",
|
||||
"symplify\/rule-doc-generator": "<10.1.1",
|
||||
"symplify\/vendor-patches": "<10.1.1",
|
||||
"symplify\/skipper": "<10.1.1",
|
||||
"symplify\/symfony-static-dumper": "<10.1.1",
|
||||
"symplify\/git-wrapper": "<10.1.1",
|
||||
"symplify\/symplify-kernel": "<9.4.70",
|
||||
"symplify\/monorepo-builder": "<10.1.0",
|
||||
"symplify\/config-transformer": "<10.1.0",
|
||||
"symplify\/easy-ci": "<10.1.0",
|
||||
"symplify\/coding-standard": "<10.1.0",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.0",
|
||||
"symplify\/easy-parallel": "<10.1.0",
|
||||
"symplify\/neon-config-dumper": "<10.1.0"
|
||||
"symplify\/monorepo-builder": "<10.1.1",
|
||||
"symplify\/config-transformer": "<10.1.1",
|
||||
"symplify\/easy-ci": "<10.1.1",
|
||||
"symplify\/coding-standard": "<10.1.1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.1",
|
||||
"symplify\/easy-parallel": "<10.1.1",
|
||||
"symplify\/neon-config-dumper": "<10.1.1"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
|
@ -55,7 +55,7 @@ final class ComposerJson
|
|||
*/
|
||||
private $repositories = [];
|
||||
/**
|
||||
* @var array<string, mixed>
|
||||
* @var array<string, string>
|
||||
*/
|
||||
private $require = [];
|
||||
/**
|
||||
|
@ -67,7 +67,7 @@ final class ComposerJson
|
|||
*/
|
||||
private $extra = [];
|
||||
/**
|
||||
* @var array<string, mixed>
|
||||
* @var array<string, string>
|
||||
*/
|
||||
private $requireDev = [];
|
||||
/**
|
||||
|
@ -143,7 +143,7 @@ final class ComposerJson
|
|||
$this->type = $type;
|
||||
}
|
||||
/**
|
||||
* @param mixed[] $require
|
||||
* @param array<string, string> $require
|
||||
*/
|
||||
public function setRequire(array $require) : void
|
||||
{
|
||||
|
@ -186,6 +186,9 @@ final class ComposerJson
|
|||
{
|
||||
return $this->requireDev;
|
||||
}
|
||||
/**
|
||||
* @param array<string, string> $requireDev
|
||||
*/
|
||||
public function setRequireDev(array $requireDev) : void
|
||||
{
|
||||
$this->requireDev = $this->sortPackagesIfNeeded($requireDev);
|
||||
|
@ -687,6 +690,7 @@ final class ComposerJson
|
|||
return $autoloadDirectory;
|
||||
}
|
||||
/**
|
||||
* @param array<string, string> $packages
|
||||
* @return array<string, string>
|
||||
*/
|
||||
private function sortPackagesIfNeeded(array $packages) : array
|
||||
|
@ -698,6 +702,7 @@ final class ComposerJson
|
|||
return $packages;
|
||||
}
|
||||
/**
|
||||
* @param string[] $items
|
||||
* @return bool|int|string
|
||||
*/
|
||||
private function findPosition(string $key, array $items)
|
||||
|
|
55
vendor/symplify/easy-parallel/composer.json
vendored
55
vendor/symplify/easy-parallel/composer.json
vendored
|
@ -9,7 +9,7 @@
|
|||
"react\/event-loop": "^1.2",
|
||||
"react\/socket": "^1.10",
|
||||
"symfony\/console": "^5.4|^6.0",
|
||||
"symplify\/package-builder": "^10.1"
|
||||
"symplify\/package-builder": "^10.1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit\/phpunit": "^9.5"
|
||||
|
@ -26,39 +26,38 @@
|
|||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "10.1-dev"
|
||||
"dev-main": "10.2-dev"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"platform-check": false
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.1.0",
|
||||
"symplify\/easy-coding-standard": "<10.1.0",
|
||||
"symplify\/phpstan-rules": "<10.1.0",
|
||||
"symplify\/easy-testing": "<10.1.0",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.0",
|
||||
"symplify\/php-config-printer": "<10.1.0",
|
||||
"symplify\/autowire-array-parameter": "<10.1.0",
|
||||
"symplify\/markdown-diff": "<10.1.0",
|
||||
"symplify\/amnesia": "<10.1.0",
|
||||
"symplify\/phpstan-extensions": "<10.1.0",
|
||||
"symplify\/rule-doc-generator": "<10.1.0",
|
||||
"symplify\/vendor-patches": "<10.1.0",
|
||||
"symplify\/skipper": "<10.1.0",
|
||||
"symplify\/symfony-static-dumper": "<10.1.0",
|
||||
"symplify\/git-wrapper": "<10.1.0",
|
||||
"symplify\/config-transformer": "<10.1.0",
|
||||
"symplify\/easy-ci": "<10.1.0",
|
||||
"symplify\/coding-standard": "<10.1.0",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.0",
|
||||
"symplify\/composer-json-manipulator": "<10.1.0",
|
||||
"symplify\/smart-file-system": "<10.1.0",
|
||||
"symplify\/monorepo-builder": "<10.1.0",
|
||||
"symplify\/symplify-kernel": "<10.1.0",
|
||||
"symplify\/neon-config-dumper": "<10.1.0"
|
||||
"symplify\/astral": "<10.1.1",
|
||||
"symplify\/easy-coding-standard": "<10.1.1",
|
||||
"symplify\/phpstan-rules": "<10.1.1",
|
||||
"symplify\/easy-testing": "<10.1.1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.1",
|
||||
"symplify\/php-config-printer": "<10.1.1",
|
||||
"symplify\/autowire-array-parameter": "<10.1.1",
|
||||
"symplify\/amnesia": "<10.1.1",
|
||||
"symplify\/phpstan-extensions": "<10.1.1",
|
||||
"symplify\/rule-doc-generator": "<10.1.1",
|
||||
"symplify\/vendor-patches": "<10.1.1",
|
||||
"symplify\/skipper": "<10.1.1",
|
||||
"symplify\/symfony-static-dumper": "<10.1.1",
|
||||
"symplify\/git-wrapper": "<10.1.1",
|
||||
"symplify\/config-transformer": "<10.1.1",
|
||||
"symplify\/easy-ci": "<10.1.1",
|
||||
"symplify\/coding-standard": "<10.1.1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.1",
|
||||
"symplify\/composer-json-manipulator": "<10.1.1",
|
||||
"symplify\/smart-file-system": "<10.1.1",
|
||||
"symplify\/monorepo-builder": "<10.1.1",
|
||||
"symplify\/symplify-kernel": "<10.1.1",
|
||||
"symplify\/neon-config-dumper": "<10.1.1"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
55
vendor/symplify/easy-testing/composer.json
vendored
55
vendor/symplify/easy-testing/composer.json
vendored
|
@ -12,9 +12,9 @@
|
|||
"symfony\/finder": "^5.4|^6.0",
|
||||
"symfony\/console": "^5.4|^6.0",
|
||||
"symfony\/dependency-injection": "^5.4|^6.0",
|
||||
"symplify\/package-builder": "^10.1",
|
||||
"symplify\/smart-file-system": "^10.1",
|
||||
"symplify\/symplify-kernel": "^10.1"
|
||||
"symplify\/package-builder": "^10.1.1",
|
||||
"symplify\/smart-file-system": "^10.1.1",
|
||||
"symplify\/symplify-kernel": "^10.1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit\/phpunit": "^9.5"
|
||||
|
@ -31,34 +31,33 @@
|
|||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "10.1-dev"
|
||||
"dev-main": "10.2-dev"
|
||||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.1.0",
|
||||
"symplify\/composer-json-manipulator": "<10.1.0",
|
||||
"symplify\/easy-coding-standard": "<10.1.0",
|
||||
"symplify\/phpstan-rules": "<10.1.0",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.0",
|
||||
"symplify\/php-config-printer": "<10.1.0",
|
||||
"symplify\/autowire-array-parameter": "<10.1.0",
|
||||
"symplify\/markdown-diff": "<10.1.0",
|
||||
"symplify\/amnesia": "<10.1.0",
|
||||
"symplify\/phpstan-extensions": "<10.1.0",
|
||||
"symplify\/rule-doc-generator": "<10.1.0",
|
||||
"symplify\/vendor-patches": "<10.1.0",
|
||||
"symplify\/skipper": "<10.1.0",
|
||||
"symplify\/symfony-static-dumper": "<10.1.0",
|
||||
"symplify\/git-wrapper": "<10.1.0",
|
||||
"symplify\/monorepo-builder": "<10.1.0",
|
||||
"symplify\/config-transformer": "<10.1.0",
|
||||
"symplify\/easy-ci": "<10.1.0",
|
||||
"symplify\/coding-standard": "<10.1.0",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.0",
|
||||
"symplify\/easy-parallel": "<10.1.0",
|
||||
"symplify\/neon-config-dumper": "<10.1.0"
|
||||
"symplify\/astral": "<10.1.1",
|
||||
"symplify\/composer-json-manipulator": "<10.1.1",
|
||||
"symplify\/easy-coding-standard": "<10.1.1",
|
||||
"symplify\/phpstan-rules": "<10.1.1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.1",
|
||||
"symplify\/php-config-printer": "<10.1.1",
|
||||
"symplify\/autowire-array-parameter": "<10.1.1",
|
||||
"symplify\/amnesia": "<10.1.1",
|
||||
"symplify\/phpstan-extensions": "<10.1.1",
|
||||
"symplify\/rule-doc-generator": "<10.1.1",
|
||||
"symplify\/vendor-patches": "<10.1.1",
|
||||
"symplify\/skipper": "<10.1.1",
|
||||
"symplify\/symfony-static-dumper": "<10.1.1",
|
||||
"symplify\/git-wrapper": "<10.1.1",
|
||||
"symplify\/monorepo-builder": "<10.1.1",
|
||||
"symplify\/config-transformer": "<10.1.1",
|
||||
"symplify\/easy-ci": "<10.1.1",
|
||||
"symplify\/coding-standard": "<10.1.1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.1",
|
||||
"symplify\/easy-parallel": "<10.1.1",
|
||||
"symplify\/neon-config-dumper": "<10.1.1"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
|
@ -17,6 +17,7 @@ final class FixtureFinder
|
|||
$this->finderSanitizer = $finderSanitizer;
|
||||
}
|
||||
/**
|
||||
* @param string[] $sources
|
||||
* @return SmartFileInfo[]
|
||||
*/
|
||||
public function find(array $sources) : array
|
||||
|
|
55
vendor/symplify/package-builder/composer.json
vendored
55
vendor/symplify/package-builder/composer.json
vendored
|
@ -10,8 +10,8 @@
|
|||
"symfony\/console": "^5.4|^6.0",
|
||||
"symfony\/dependency-injection": "^5.4|^6.0",
|
||||
"symfony\/finder": "^5.4|^6.0",
|
||||
"symplify\/symplify-kernel": "^10.1",
|
||||
"symplify\/easy-testing": "^10.1",
|
||||
"symplify\/symplify-kernel": "^10.1.1",
|
||||
"symplify\/easy-testing": "^10.1.1",
|
||||
"nette\/neon": "^3.3.2"
|
||||
},
|
||||
"require-dev": {
|
||||
|
@ -29,35 +29,34 @@
|
|||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "10.1-dev"
|
||||
"dev-main": "10.2-dev"
|
||||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.1.0",
|
||||
"symplify\/composer-json-manipulator": "<10.1.0",
|
||||
"symplify\/easy-coding-standard": "<10.1.0",
|
||||
"symplify\/phpstan-rules": "<10.1.0",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.0",
|
||||
"symplify\/php-config-printer": "<10.1.0",
|
||||
"symplify\/autowire-array-parameter": "<10.1.0",
|
||||
"symplify\/markdown-diff": "<10.1.0",
|
||||
"symplify\/amnesia": "<10.1.0",
|
||||
"symplify\/phpstan-extensions": "<10.1.0",
|
||||
"symplify\/rule-doc-generator": "<10.1.0",
|
||||
"symplify\/vendor-patches": "<10.1.0",
|
||||
"symplify\/skipper": "<10.1.0",
|
||||
"symplify\/smart-file-system": "<10.1.0",
|
||||
"symplify\/symfony-static-dumper": "<10.1.0",
|
||||
"symplify\/git-wrapper": "<10.1.0",
|
||||
"symplify\/monorepo-builder": "<10.1.0",
|
||||
"symplify\/config-transformer": "<10.1.0",
|
||||
"symplify\/easy-ci": "<10.1.0",
|
||||
"symplify\/coding-standard": "<10.1.0",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.0",
|
||||
"symplify\/easy-parallel": "<10.1.0",
|
||||
"symplify\/neon-config-dumper": "<10.1.0"
|
||||
"symplify\/astral": "<10.1.1",
|
||||
"symplify\/composer-json-manipulator": "<10.1.1",
|
||||
"symplify\/easy-coding-standard": "<10.1.1",
|
||||
"symplify\/phpstan-rules": "<10.1.1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.1",
|
||||
"symplify\/php-config-printer": "<10.1.1",
|
||||
"symplify\/autowire-array-parameter": "<10.1.1",
|
||||
"symplify\/amnesia": "<10.1.1",
|
||||
"symplify\/phpstan-extensions": "<10.1.1",
|
||||
"symplify\/rule-doc-generator": "<10.1.1",
|
||||
"symplify\/vendor-patches": "<10.1.1",
|
||||
"symplify\/skipper": "<10.1.1",
|
||||
"symplify\/smart-file-system": "<10.1.1",
|
||||
"symplify\/symfony-static-dumper": "<10.1.1",
|
||||
"symplify\/git-wrapper": "<10.1.1",
|
||||
"symplify\/monorepo-builder": "<10.1.1",
|
||||
"symplify\/config-transformer": "<10.1.1",
|
||||
"symplify\/easy-ci": "<10.1.1",
|
||||
"symplify\/coding-standard": "<10.1.1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.1",
|
||||
"symplify\/easy-parallel": "<10.1.1",
|
||||
"symplify\/neon-config-dumper": "<10.1.1"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
|
@ -13,37 +13,36 @@
|
|||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "10.1-dev"
|
||||
"dev-main": "10.2-dev"
|
||||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.1.0",
|
||||
"symplify\/composer-json-manipulator": "<10.1.0",
|
||||
"symplify\/easy-coding-standard": "<10.1.0",
|
||||
"symplify\/phpstan-rules": "<10.1.0",
|
||||
"symplify\/easy-testing": "<10.1.0",
|
||||
"symplify\/php-config-printer": "<10.1.0",
|
||||
"symplify\/autowire-array-parameter": "<10.1.0",
|
||||
"symplify\/markdown-diff": "<10.1.0",
|
||||
"symplify\/package-builder": "<10.1.0",
|
||||
"symplify\/amnesia": "<10.1.0",
|
||||
"symplify\/phpstan-extensions": "<10.1.0",
|
||||
"symplify\/rule-doc-generator": "<10.1.0",
|
||||
"symplify\/vendor-patches": "<10.1.0",
|
||||
"symplify\/skipper": "<10.1.0",
|
||||
"symplify\/smart-file-system": "<10.1.0",
|
||||
"symplify\/symfony-static-dumper": "<10.1.0",
|
||||
"symplify\/git-wrapper": "<10.1.0",
|
||||
"symplify\/symplify-kernel": "<10.1.0",
|
||||
"symplify\/monorepo-builder": "<10.1.0",
|
||||
"symplify\/config-transformer": "<10.1.0",
|
||||
"symplify\/easy-ci": "<10.1.0",
|
||||
"symplify\/coding-standard": "<10.1.0",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.0",
|
||||
"symplify\/easy-parallel": "<10.1.0",
|
||||
"symplify\/neon-config-dumper": "<10.1.0"
|
||||
"symplify\/astral": "<10.1.1",
|
||||
"symplify\/composer-json-manipulator": "<10.1.1",
|
||||
"symplify\/easy-coding-standard": "<10.1.1",
|
||||
"symplify\/phpstan-rules": "<10.1.1",
|
||||
"symplify\/easy-testing": "<10.1.1",
|
||||
"symplify\/php-config-printer": "<10.1.1",
|
||||
"symplify\/autowire-array-parameter": "<10.1.1",
|
||||
"symplify\/package-builder": "<10.1.1",
|
||||
"symplify\/amnesia": "<10.1.1",
|
||||
"symplify\/phpstan-extensions": "<10.1.1",
|
||||
"symplify\/rule-doc-generator": "<10.1.1",
|
||||
"symplify\/vendor-patches": "<10.1.1",
|
||||
"symplify\/skipper": "<10.1.1",
|
||||
"symplify\/smart-file-system": "<10.1.1",
|
||||
"symplify\/symfony-static-dumper": "<10.1.1",
|
||||
"symplify\/git-wrapper": "<10.1.1",
|
||||
"symplify\/symplify-kernel": "<10.1.1",
|
||||
"symplify\/monorepo-builder": "<10.1.1",
|
||||
"symplify\/config-transformer": "<10.1.1",
|
||||
"symplify\/easy-ci": "<10.1.1",
|
||||
"symplify\/coding-standard": "<10.1.1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.1",
|
||||
"symplify\/easy-parallel": "<10.1.1",
|
||||
"symplify\/neon-config-dumper": "<10.1.1"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
55
vendor/symplify/skipper/composer.json
vendored
55
vendor/symplify/skipper/composer.json
vendored
|
@ -9,9 +9,9 @@
|
|||
"symfony\/dependency-injection": "^5.4|^6.0",
|
||||
"symfony\/finder": "^5.4|^6.0",
|
||||
"symfony\/filesystem": "^5.4|^6.0",
|
||||
"symplify\/package-builder": "^10.1",
|
||||
"symplify\/symplify-kernel": "^10.1",
|
||||
"symplify\/smart-file-system": "^10.1"
|
||||
"symplify\/package-builder": "^10.1.1",
|
||||
"symplify\/symplify-kernel": "^10.1.1",
|
||||
"symplify\/smart-file-system": "^10.1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit\/phpunit": "^9.5"
|
||||
|
@ -28,34 +28,33 @@
|
|||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "10.1-dev"
|
||||
"dev-main": "10.2-dev"
|
||||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.1.0",
|
||||
"symplify\/composer-json-manipulator": "<10.1.0",
|
||||
"symplify\/easy-coding-standard": "<10.1.0",
|
||||
"symplify\/phpstan-rules": "<10.1.0",
|
||||
"symplify\/easy-testing": "<10.1.0",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.0",
|
||||
"symplify\/php-config-printer": "<10.1.0",
|
||||
"symplify\/autowire-array-parameter": "<10.1.0",
|
||||
"symplify\/markdown-diff": "<10.1.0",
|
||||
"symplify\/amnesia": "<10.1.0",
|
||||
"symplify\/phpstan-extensions": "<10.1.0",
|
||||
"symplify\/rule-doc-generator": "<10.1.0",
|
||||
"symplify\/vendor-patches": "<10.1.0",
|
||||
"symplify\/symfony-static-dumper": "<10.1.0",
|
||||
"symplify\/git-wrapper": "<10.1.0",
|
||||
"symplify\/monorepo-builder": "<10.1.0",
|
||||
"symplify\/config-transformer": "<10.1.0",
|
||||
"symplify\/easy-ci": "<10.1.0",
|
||||
"symplify\/coding-standard": "<10.1.0",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.0",
|
||||
"symplify\/easy-parallel": "<10.1.0",
|
||||
"symplify\/neon-config-dumper": "<10.1.0"
|
||||
"symplify\/astral": "<10.1.1",
|
||||
"symplify\/composer-json-manipulator": "<10.1.1",
|
||||
"symplify\/easy-coding-standard": "<10.1.1",
|
||||
"symplify\/phpstan-rules": "<10.1.1",
|
||||
"symplify\/easy-testing": "<10.1.1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.1",
|
||||
"symplify\/php-config-printer": "<10.1.1",
|
||||
"symplify\/autowire-array-parameter": "<10.1.1",
|
||||
"symplify\/amnesia": "<10.1.1",
|
||||
"symplify\/phpstan-extensions": "<10.1.1",
|
||||
"symplify\/rule-doc-generator": "<10.1.1",
|
||||
"symplify\/vendor-patches": "<10.1.1",
|
||||
"symplify\/symfony-static-dumper": "<10.1.1",
|
||||
"symplify\/git-wrapper": "<10.1.1",
|
||||
"symplify\/monorepo-builder": "<10.1.1",
|
||||
"symplify\/config-transformer": "<10.1.1",
|
||||
"symplify\/easy-ci": "<10.1.1",
|
||||
"symplify\/coding-standard": "<10.1.1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.1",
|
||||
"symplify\/easy-parallel": "<10.1.1",
|
||||
"symplify\/neon-config-dumper": "<10.1.1"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
55
vendor/symplify/smart-file-system/composer.json
vendored
55
vendor/symplify/smart-file-system/composer.json
vendored
|
@ -24,37 +24,36 @@
|
|||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "10.1-dev"
|
||||
"dev-main": "10.2-dev"
|
||||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.1.0",
|
||||
"symplify\/composer-json-manipulator": "<10.1.0",
|
||||
"symplify\/easy-coding-standard": "<10.1.0",
|
||||
"symplify\/phpstan-rules": "<10.1.0",
|
||||
"symplify\/easy-testing": "<10.1.0",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.0",
|
||||
"symplify\/php-config-printer": "<10.1.0",
|
||||
"symplify\/autowire-array-parameter": "<10.1.0",
|
||||
"symplify\/markdown-diff": "<10.1.0",
|
||||
"symplify\/package-builder": "<10.1.0",
|
||||
"symplify\/amnesia": "<10.1.0",
|
||||
"symplify\/phpstan-extensions": "<10.1.0",
|
||||
"symplify\/rule-doc-generator": "<10.1.0",
|
||||
"symplify\/vendor-patches": "<10.1.0",
|
||||
"symplify\/skipper": "<10.1.0",
|
||||
"symplify\/symfony-static-dumper": "<10.1.0",
|
||||
"symplify\/git-wrapper": "<10.1.0",
|
||||
"symplify\/symplify-kernel": "<10.1.0",
|
||||
"symplify\/monorepo-builder": "<10.1.0",
|
||||
"symplify\/config-transformer": "<10.1.0",
|
||||
"symplify\/easy-ci": "<10.1.0",
|
||||
"symplify\/coding-standard": "<10.1.0",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.0",
|
||||
"symplify\/easy-parallel": "<10.1.0",
|
||||
"symplify\/neon-config-dumper": "<10.1.0"
|
||||
"symplify\/astral": "<10.1.1",
|
||||
"symplify\/composer-json-manipulator": "<10.1.1",
|
||||
"symplify\/easy-coding-standard": "<10.1.1",
|
||||
"symplify\/phpstan-rules": "<10.1.1",
|
||||
"symplify\/easy-testing": "<10.1.1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.1",
|
||||
"symplify\/php-config-printer": "<10.1.1",
|
||||
"symplify\/autowire-array-parameter": "<10.1.1",
|
||||
"symplify\/package-builder": "<10.1.1",
|
||||
"symplify\/amnesia": "<10.1.1",
|
||||
"symplify\/phpstan-extensions": "<10.1.1",
|
||||
"symplify\/rule-doc-generator": "<10.1.1",
|
||||
"symplify\/vendor-patches": "<10.1.1",
|
||||
"symplify\/skipper": "<10.1.1",
|
||||
"symplify\/symfony-static-dumper": "<10.1.1",
|
||||
"symplify\/git-wrapper": "<10.1.1",
|
||||
"symplify\/symplify-kernel": "<10.1.1",
|
||||
"symplify\/monorepo-builder": "<10.1.1",
|
||||
"symplify\/config-transformer": "<10.1.1",
|
||||
"symplify\/easy-ci": "<10.1.1",
|
||||
"symplify\/coding-standard": "<10.1.1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.1",
|
||||
"symplify\/easy-parallel": "<10.1.1",
|
||||
"symplify\/neon-config-dumper": "<10.1.1"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
55
vendor/symplify/symplify-kernel/composer.json
vendored
55
vendor/symplify/symplify-kernel/composer.json
vendored
|
@ -6,10 +6,10 @@
|
|||
"php": ">=8.0",
|
||||
"symfony\/console": "^5.4|^6.0",
|
||||
"symfony\/dependency-injection": "^5.4|^6.0",
|
||||
"symplify\/smart-file-system": "^10.1",
|
||||
"symplify\/composer-json-manipulator": "^10.1",
|
||||
"symplify\/autowire-array-parameter": "^10.1",
|
||||
"symplify\/package-builder": "^10.1",
|
||||
"symplify\/smart-file-system": "^10.1.1",
|
||||
"symplify\/composer-json-manipulator": "^10.1.1",
|
||||
"symplify\/autowire-array-parameter": "^10.1.1",
|
||||
"symplify\/package-builder": "^10.1.1",
|
||||
"webmozart\/assert": "^1.10"
|
||||
},
|
||||
"require-dev": {
|
||||
|
@ -27,33 +27,32 @@
|
|||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "10.1-dev"
|
||||
"dev-main": "10.2-dev"
|
||||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.1.0",
|
||||
"symplify\/easy-coding-standard": "<10.1.0",
|
||||
"symplify\/phpstan-rules": "<10.1.0",
|
||||
"symplify\/easy-testing": "<10.1.0",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.0",
|
||||
"symplify\/php-config-printer": "<10.1.0",
|
||||
"symplify\/markdown-diff": "<10.1.0",
|
||||
"symplify\/amnesia": "<10.1.0",
|
||||
"symplify\/phpstan-extensions": "<10.1.0",
|
||||
"symplify\/rule-doc-generator": "<10.1.0",
|
||||
"symplify\/vendor-patches": "<10.1.0",
|
||||
"symplify\/skipper": "<10.1.0",
|
||||
"symplify\/symfony-static-dumper": "<10.1.0",
|
||||
"symplify\/git-wrapper": "<10.1.0",
|
||||
"symplify\/monorepo-builder": "<10.1.0",
|
||||
"symplify\/config-transformer": "<10.1.0",
|
||||
"symplify\/easy-ci": "<10.1.0",
|
||||
"symplify\/coding-standard": "<10.1.0",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.0",
|
||||
"symplify\/easy-parallel": "<10.1.0",
|
||||
"symplify\/neon-config-dumper": "<10.1.0"
|
||||
"symplify\/astral": "<10.1.1",
|
||||
"symplify\/easy-coding-standard": "<10.1.1",
|
||||
"symplify\/phpstan-rules": "<10.1.1",
|
||||
"symplify\/easy-testing": "<10.1.1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.1",
|
||||
"symplify\/php-config-printer": "<10.1.1",
|
||||
"symplify\/amnesia": "<10.1.1",
|
||||
"symplify\/phpstan-extensions": "<10.1.1",
|
||||
"symplify\/rule-doc-generator": "<10.1.1",
|
||||
"symplify\/vendor-patches": "<10.1.1",
|
||||
"symplify\/skipper": "<10.1.1",
|
||||
"symplify\/symfony-static-dumper": "<10.1.1",
|
||||
"symplify\/git-wrapper": "<10.1.1",
|
||||
"symplify\/monorepo-builder": "<10.1.1",
|
||||
"symplify\/config-transformer": "<10.1.1",
|
||||
"symplify\/easy-ci": "<10.1.1",
|
||||
"symplify\/coding-standard": "<10.1.1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.1",
|
||||
"symplify\/easy-parallel": "<10.1.1",
|
||||
"symplify\/neon-config-dumper": "<10.1.1"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
55
vendor/symplify/vendor-patches/composer.json
vendored
55
vendor/symplify/vendor-patches/composer.json
vendored
|
@ -12,8 +12,8 @@
|
|||
"symfony\/dependency-injection": "^5.4|^6.0",
|
||||
"sebastian\/diff": "^4.0",
|
||||
"cweagans\/composer-patches": "^1.7",
|
||||
"symplify\/composer-json-manipulator": "^10.1",
|
||||
"symplify\/symplify-kernel": "^10.1"
|
||||
"symplify\/composer-json-manipulator": "^10.1.1",
|
||||
"symplify\/symplify-kernel": "^10.1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit\/phpunit": "^9.5"
|
||||
|
@ -30,35 +30,34 @@
|
|||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "10.1-dev"
|
||||
"dev-main": "10.2-dev"
|
||||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.1.0",
|
||||
"symplify\/easy-coding-standard": "<10.1.0",
|
||||
"symplify\/phpstan-rules": "<10.1.0",
|
||||
"symplify\/easy-testing": "<10.1.0",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.0",
|
||||
"symplify\/php-config-printer": "<10.1.0",
|
||||
"symplify\/autowire-array-parameter": "<10.1.0",
|
||||
"symplify\/markdown-diff": "<10.1.0",
|
||||
"symplify\/package-builder": "<10.1.0",
|
||||
"symplify\/amnesia": "<10.1.0",
|
||||
"symplify\/phpstan-extensions": "<10.1.0",
|
||||
"symplify\/rule-doc-generator": "<10.1.0",
|
||||
"symplify\/skipper": "<10.1.0",
|
||||
"symplify\/smart-file-system": "<10.1.0",
|
||||
"symplify\/symfony-static-dumper": "<10.1.0",
|
||||
"symplify\/git-wrapper": "<10.1.0",
|
||||
"symplify\/monorepo-builder": "<10.1.0",
|
||||
"symplify\/config-transformer": "<10.1.0",
|
||||
"symplify\/easy-ci": "<10.1.0",
|
||||
"symplify\/coding-standard": "<10.1.0",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.0",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.0",
|
||||
"symplify\/easy-parallel": "<10.1.0",
|
||||
"symplify\/neon-config-dumper": "<10.1.0"
|
||||
"symplify\/astral": "<10.1.1",
|
||||
"symplify\/easy-coding-standard": "<10.1.1",
|
||||
"symplify\/phpstan-rules": "<10.1.1",
|
||||
"symplify\/easy-testing": "<10.1.1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.1.1",
|
||||
"symplify\/php-config-printer": "<10.1.1",
|
||||
"symplify\/autowire-array-parameter": "<10.1.1",
|
||||
"symplify\/package-builder": "<10.1.1",
|
||||
"symplify\/amnesia": "<10.1.1",
|
||||
"symplify\/phpstan-extensions": "<10.1.1",
|
||||
"symplify\/rule-doc-generator": "<10.1.1",
|
||||
"symplify\/skipper": "<10.1.1",
|
||||
"symplify\/smart-file-system": "<10.1.1",
|
||||
"symplify\/symfony-static-dumper": "<10.1.1",
|
||||
"symplify\/git-wrapper": "<10.1.1",
|
||||
"symplify\/monorepo-builder": "<10.1.1",
|
||||
"symplify\/config-transformer": "<10.1.1",
|
||||
"symplify\/easy-ci": "<10.1.1",
|
||||
"symplify\/coding-standard": "<10.1.1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/template-phpstan-compiler": "<10.1.1",
|
||||
"symplify\/phpstan-latte-rules": "<10.1.1",
|
||||
"symplify\/easy-parallel": "<10.1.1",
|
||||
"symplify\/neon-config-dumper": "<10.1.1"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
Loading…
Reference in New Issue
Block a user