Skip to content

Commit

Permalink
phpstan fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
muxx committed Oct 21, 2024
1 parent 3e5da02 commit 614d1d1
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 7 deletions.
4 changes: 2 additions & 2 deletions Command/IndexUpdateCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ class IndexUpdateCommand extends Command
{
private const DUMP_SQL_OPTION = 'dump-sql';

private ?InputInterface $input;
private ?OutputInterface $output;
private InputInterface $input;
private OutputInterface $output;

public function __construct(
private readonly ValidatorInterface $validator,
Expand Down
16 changes: 14 additions & 2 deletions DTO/CustomIndex.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ final class CustomIndex

#[Assert\Length(min: 1, max: 63, minMessage: 'Name must be set', maxMessage: 'Name is too long')]
private ?string $name;

/** @var string[] */
#[Assert\Count(min: 1, minMessage: 'You must specify at least one column')]
#[Assert\All([
new Assert\Type([
Expand All @@ -20,6 +22,7 @@ final class CustomIndex
]),
])]
private array $columns = [];

private bool $unique;
#[AllowedIndexType]
private ?string $using;
Expand All @@ -29,6 +32,9 @@ final class CustomIndex
private string $schema;
private string $currentSchema;

/**
* @param string[]|string $columns
*/
public function __construct(
string $tableName,
string $schema,
Expand Down Expand Up @@ -75,6 +81,9 @@ public function getName(): ?string
return $this->name;
}

/**
* @return string[]
*/
public function getColumns(): array
{
return $this->columns;
Expand Down Expand Up @@ -108,7 +117,10 @@ private function generateName(): void
$this->setName($name);
}

private function setColumns($columns): void
/**
* @param string[]|string $columns
*/
private function setColumns(array|string $columns): void
{
if (is_string($columns)) {
$columns = [$columns];
Expand All @@ -122,7 +134,7 @@ private function setColumns($columns): void
}
}

private function setName($name): void
private function setName(string $name): void
{
if (!str_starts_with($name, self::PREFIX)) {
$name = self::PREFIX . $name;
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ vendor: composer.json
@touch vendor || true

php-cs: vendor
@$(PHP) vendor/bin/php-cs-fixer check -vv
@$(PHP) vendor/bin/php-cs-fixer fix --using-cache=no -vv

phpstan: vendor
@$(PHP) vendor/bin/phpstan analyse
Expand Down
23 changes: 22 additions & 1 deletion Metadata/Reader.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
use Doctrine\ORM\Mapping\ClassMetadataInfo;
use Intaro\CustomIndexBundle\DTO\CustomIndex;

/**
* @template T of object
*/
final class Reader implements ReaderInterface
{
public function __construct(private readonly EntityManagerInterface $em)
Expand Down Expand Up @@ -34,6 +37,10 @@ public function getIndexes(string $currentSchema, bool $searchInAllSchemas): arr
return $indexNamesToCustomIndexes;
}

/**
* @param array<string, CustomIndex> $indexNamesToCustomIndexes
* @param ClassMetadata<T> $metadata
*/
private function collect(
array &$indexNamesToCustomIndexes,
ClassMetadata $metadata,
Expand Down Expand Up @@ -72,6 +79,10 @@ private function collect(
}
}

/**
* @param ClassMetadata<T> $metadata
* @param ClassMetadata<T> $parentMetadata
*/
private function getTableNameFromMetadata(ClassMetadata $metadata, ClassMetadata $parentMetadata): string
{
if (ClassMetadataInfo::INHERITANCE_TYPE_JOINED === $metadata->inheritanceType) {
Expand All @@ -81,18 +92,27 @@ private function getTableNameFromMetadata(ClassMetadata $metadata, ClassMetadata
return $metadata->getTableName();
}

/** @return array<\ReflectionAttribute> */
/**
* @param ClassMetadata<T> $meta
*
* @return array<\ReflectionAttribute<Attribute\CustomIndex>>
*/
private function getCustomIndexesAttributes(ClassMetadata $meta): array
{
return $meta->getReflectionClass()->getAttributes(Attribute\CustomIndex::class);
}

/**
* @param ClassMetadata<T> $meta
*/
private function isAbstract(ClassMetadata $meta): bool
{
return $meta->getReflectionClass()->isAbstract();
}

/**
* @param array<ClassMetadata<T>> $metadata
*
* @return array<string, mixed>
*/
private function getAbstractClassesInfo(array $metadata): array
Expand All @@ -108,6 +128,7 @@ private function getAbstractClassesInfo(array $metadata): array
}

/**
* @param ClassMetadata<T> $meta
* @param array<string, mixed> $abstractClasses
*
* @return array<string, mixed>
Expand Down
8 changes: 7 additions & 1 deletion phpstan.neon.dist
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
parameters:
level: 8
paths:
- ./
- Command/
- config/
- DBAL/
- DTO/
- Metadata/
- Validator/
- IntaroCustomIndexBundle.php

0 comments on commit 614d1d1

Please sign in to comment.