Skip to content

Commit

Permalink
refactor: add typed on private property based on assigns (#1200)
Browse files Browse the repository at this point in the history
  • Loading branch information
spiralbot committed Jan 10, 2025
1 parent 13f2c05 commit d947375
Show file tree
Hide file tree
Showing 23 changed files with 219 additions and 240 deletions.
8 changes: 4 additions & 4 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,15 @@
"require": {
"php": ">=8.1",
"ext-tokenizer": "*",
"spiral/core": "^3.14.9",
"spiral/logger": "^3.14.9",
"spiral/core": "^3.15",
"spiral/logger": "^3.15",
"symfony/finder": "^5.3.7 || ^6.0 || ^7.0"
},
"require-dev": {
"mockery/mockery": "^1.6",
"spiral/attributes": "^2.8|^3.0",
"spiral/boot": "^3.14.9",
"spiral/files": "^3.14.9",
"spiral/boot": "^3.15",
"spiral/files": "^3.15",
"phpunit/phpunit": "^10.1",
"vimeo/psalm": "^5.9"
},
Expand Down
2 changes: 1 addition & 1 deletion src/AbstractLocator.php
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ protected function availableReflections(): \Generator
*/
protected function classReflection(string $class): \ReflectionClass
{
$loader = static function ($class) {
$loader = static function ($class): void {
if ($class === LocatorException::class) {
return;
}
Expand Down
2 changes: 1 addition & 1 deletion src/Listener/CachedClassesLoader.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public function loadClasses(TokenizationListenerInterface $listener): bool
return $this->doLoad(
$listener,
$this->locator->getClasses(...),
static fn (string $class) => new \ReflectionClass($class),
static fn (string $class): \ReflectionClass => new \ReflectionClass($class),
);
}
}
2 changes: 1 addition & 1 deletion src/Listener/CachedEnumsLoader.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public function loadEnums(TokenizationListenerInterface $listener): bool
return $this->doLoad(
$listener,
$this->locator->getEnums(...),
static fn (string $enum) => new \ReflectionEnum($enum),
static fn (string $enum): \ReflectionEnum => new \ReflectionEnum($enum),
);
}
}
2 changes: 1 addition & 1 deletion src/Listener/CachedInterfacesLoader.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public function loadInterfaces(TokenizationListenerInterface $listener): bool
return $this->doLoad(
$listener,
$this->locator->getInterfaces(...),
static fn (string $class) => new \ReflectionClass($class),
static fn (string $class): \ReflectionClass => new \ReflectionClass($class),
);
}
}
11 changes: 4 additions & 7 deletions tests/Attribute/TargetAttributeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@ final class TargetAttributeTest extends TestCase
public function testToString(): void
{
$attribute = new TargetAttribute('foo');
$this->assertSame('3dc18b19eed74479a03c069dec2e8724', (string) $attribute);
self::assertSame('3dc18b19eed74479a03c069dec2e8724', (string) $attribute);

$attribute = new TargetAttribute('foo', 'bar');
$this->assertSame('52ec767c53f3898bf6de6f6e88125dc8', (string) $attribute);
self::assertSame('52ec767c53f3898bf6de6f6e88125dc8', (string) $attribute);
}

public function testFilterAttrWithArgs(): void
{
$attribute = new TargetAttribute(attribute: WithTargetClassWithArgs::class);
$this->assertEquals([
self::assertSame([
ClassWithAttributeWithArgsOnClass::class,
], \iterator_to_array($attribute->filter([new \ReflectionClass(ClassWithAttributeWithArgsOnClass::class)])));
}
Expand All @@ -53,10 +53,7 @@ public function testFilter(

$result = \iterator_to_array($attribute->filter([new \ReflectionClass($class)]));

$this->assertEquals(
$found ? [$class] : [],
$result,
);
self::assertEquals($found ? [$class] : [], $result);
}

public static function filterDataProvider(): iterable
Expand Down
4 changes: 2 additions & 2 deletions tests/Attribute/TargetClassTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ final class TargetClassTest extends TestCase
public function testToString(): void
{
$attribute = new TargetClass('foo');
$this->assertSame('3319d33aad20ad375d27dcd03c879454', (string) $attribute);
self::assertSame('3319d33aad20ad375d27dcd03c879454', (string) $attribute);

$attribute = new TargetClass('foo', 'bar');
$this->assertSame('a95c8a2cfc901290939df93183ce98d6', (string) $attribute);
self::assertSame('a95c8a2cfc901290939df93183ce98d6', (string) $attribute);
}
}
10 changes: 5 additions & 5 deletions tests/Bootloader/TokenizerBootloaderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ public function testCastingReadCacheEnvVariable(mixed $readCache, bool $expected

$initConfig = $config->getConfig(TokenizerConfig::CONFIG);

$this->assertSame('runtime/cache/listeners', $initConfig['cache']['directory']);
$this->assertSame($expected, $initConfig['cache']['enabled']);
self::assertSame('runtime/cache/listeners', $initConfig['cache']['directory']);
self::assertSame($expected, $initConfig['cache']['enabled']);
}

#[DataProvider('boolValuesDataProvider')]
Expand All @@ -62,7 +62,7 @@ public function testCastingLoadClassesEnvVariable(mixed $classes, bool $expected
$bootloader = new TokenizerBootloader($config = new ConfigManager(new DirectoryLoader('config')));
$bootloader->init(m::spy(BinderInterface::class), $dirs, $env);

$this->assertSame($expected, $config->getConfig(TokenizerConfig::CONFIG)['load']['classes']);
self::assertSame($expected, $config->getConfig(TokenizerConfig::CONFIG)['load']['classes']);
}

#[DataProvider('boolValuesDataProvider')]
Expand All @@ -84,7 +84,7 @@ public function testCastingLoadEnumsEnvVariable(mixed $enums, bool $expected): v
$bootloader = new TokenizerBootloader($config = new ConfigManager(new DirectoryLoader('config')));
$bootloader->init(m::spy(BinderInterface::class), $dirs, $env);

$this->assertSame($expected, $config->getConfig(TokenizerConfig::CONFIG)['load']['enums']);
self::assertSame($expected, $config->getConfig(TokenizerConfig::CONFIG)['load']['enums']);
}

#[DataProvider('boolValuesDataProvider')]
Expand All @@ -106,7 +106,7 @@ public function testCastingLoadInterfacesEnvVariable(mixed $interfaces, bool $ex
$bootloader = new TokenizerBootloader($config = new ConfigManager(new DirectoryLoader('config')));
$bootloader->init(m::spy(BinderInterface::class), $dirs, $env);

$this->assertSame($expected, $config->getConfig(TokenizerConfig::CONFIG)['load']['interfaces']);
self::assertSame($expected, $config->getConfig(TokenizerConfig::CONFIG)['load']['interfaces']);
}

public static function boolValuesDataProvider(): \Traversable
Expand Down
10 changes: 2 additions & 8 deletions tests/Bootloader/TokenizerListenerBootloaderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,7 @@ public function testEnableCacheListenersThroughConfig(string $class, string $int

$config = new TokenizerConfig(['cache' => ['directory' => 'cache', 'enabled' => true]]);

$this->assertSame(
$loader,
$bootloader->{$method}($factory, $config),
);
self::assertSame($loader, $bootloader->{$method}($factory, $config));
}

public function testAddDirectoryInBootloaderInit(): void
Expand All @@ -60,10 +57,7 @@ public function testAddDirectoryInBootloaderInit(): void
$kernel = TestCoreWithTokenizer::create(directories: ['root' => __DIR__], container: $container);
$kernel->run();

$this->assertTrue(\in_array(
\dirname(__DIR__) . '/Fixtures/Bootloader',
$container->get(TokenizerConfig::class)->getDirectories()
));
self::assertContains(\dirname(__DIR__) . '/Fixtures/Bootloader', $container->get(TokenizerConfig::class)->getDirectories());
}

}
64 changes: 32 additions & 32 deletions tests/ClassLocatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ public function testClassesAll(): void
//Direct loading
$classes = $tokenizer->classLocator()->getClasses();

$this->assertArrayHasKey(self::class, $classes);
$this->assertArrayHasKey(ClassA::class, $classes);
$this->assertArrayHasKey(ClassB::class, $classes);
$this->assertArrayHasKey(ClassC::class, $classes);
$this->assertArrayHasKey(ClassD::class, $classes);
self::assertArrayHasKey(self::class, $classes);
self::assertArrayHasKey(ClassA::class, $classes);
self::assertArrayHasKey(ClassB::class, $classes);
self::assertArrayHasKey(ClassC::class, $classes);
self::assertArrayHasKey(ClassD::class, $classes);

//Excluded
$this->assertArrayNotHasKey(\Spiral\Tests\Tokenizer\Classes\Excluded\ClassXX::class, $classes);
$this->assertArrayNotHasKey('Spiral\Tests\Tokenizer\Classes\Bad_Class', $classes);
self::assertArrayNotHasKey(\Spiral\Tests\Tokenizer\Classes\Excluded\ClassXX::class, $classes);
self::assertArrayNotHasKey('Spiral\Tests\Tokenizer\Classes\Bad_Class', $classes);
}

public function testClassesByClass(): void
Expand All @@ -38,12 +38,12 @@ public function testClassesByClass(): void
//By namespace
$classes = $tokenizer->classLocator()->getClasses(ClassD::class);

$this->assertArrayHasKey(ClassD::class, $classes);
self::assertArrayHasKey(ClassD::class, $classes);

$this->assertArrayNotHasKey(self::class, $classes);
$this->assertArrayNotHasKey(ClassA::class, $classes);
$this->assertArrayNotHasKey(ClassB::class, $classes);
$this->assertArrayNotHasKey(ClassC::class, $classes);
self::assertArrayNotHasKey(self::class, $classes);
self::assertArrayNotHasKey(ClassA::class, $classes);
self::assertArrayNotHasKey(ClassB::class, $classes);
self::assertArrayNotHasKey(ClassC::class, $classes);
}

public function testClassesByInterface(): void
Expand All @@ -53,12 +53,12 @@ public function testClassesByInterface(): void
//By interface
$classes = $tokenizer->classLocator()->getClasses(TestInterface::class);

$this->assertArrayHasKey(ClassB::class, $classes);
$this->assertArrayHasKey(ClassC::class, $classes);
self::assertArrayHasKey(ClassB::class, $classes);
self::assertArrayHasKey(ClassC::class, $classes);

$this->assertArrayNotHasKey(self::class, $classes);
$this->assertArrayNotHasKey(ClassA::class, $classes);
$this->assertArrayNotHasKey(ClassD::class, $classes);
self::assertArrayNotHasKey(self::class, $classes);
self::assertArrayNotHasKey(ClassA::class, $classes);
self::assertArrayNotHasKey(ClassD::class, $classes);
}

public function testClassesByTrait(): void
Expand All @@ -68,12 +68,12 @@ public function testClassesByTrait(): void
//By trait
$classes = $tokenizer->classLocator()->getClasses(TestTrait::class);

$this->assertArrayHasKey(ClassB::class, $classes);
$this->assertArrayHasKey(ClassC::class, $classes);
self::assertArrayHasKey(ClassB::class, $classes);
self::assertArrayHasKey(ClassC::class, $classes);

$this->assertArrayNotHasKey(self::class, $classes);
$this->assertArrayNotHasKey(ClassA::class, $classes);
$this->assertArrayNotHasKey(ClassD::class, $classes);
self::assertArrayNotHasKey(self::class, $classes);
self::assertArrayNotHasKey(ClassA::class, $classes);
self::assertArrayNotHasKey(ClassD::class, $classes);
}

public function testClassesByClassA(): void
Expand All @@ -83,24 +83,24 @@ public function testClassesByClassA(): void
//By class
$classes = $tokenizer->classLocator()->getClasses(ClassA::class);

$this->assertArrayHasKey(ClassA::class, $classes);
$this->assertArrayHasKey(ClassB::class, $classes);
$this->assertArrayHasKey(ClassC::class, $classes);
$this->assertArrayHasKey(ClassD::class, $classes);
self::assertArrayHasKey(ClassA::class, $classes);
self::assertArrayHasKey(ClassB::class, $classes);
self::assertArrayHasKey(ClassC::class, $classes);
self::assertArrayHasKey(ClassD::class, $classes);

$this->assertArrayNotHasKey(self::class, $classes);
self::assertArrayNotHasKey(self::class, $classes);
}

public function testClassesByClassB(): void
{
$tokenizer = $this->getTokenizer();
$classes = $tokenizer->classLocator()->getClasses(ClassB::class);

$this->assertArrayHasKey(ClassB::class, $classes);
$this->assertArrayHasKey(ClassC::class, $classes);
self::assertArrayHasKey(ClassB::class, $classes);
self::assertArrayHasKey(ClassC::class, $classes);

$this->assertArrayNotHasKey(self::class, $classes);
$this->assertArrayNotHasKey(ClassA::class, $classes);
$this->assertArrayNotHasKey(ClassD::class, $classes);
self::assertArrayNotHasKey(self::class, $classes);
self::assertArrayNotHasKey(ClassA::class, $classes);
self::assertArrayNotHasKey(ClassD::class, $classes);
}
}
Loading

0 comments on commit d947375

Please sign in to comment.