rector/packages/ChangesReporting/Annotation/RectorsChangelogResolver.php
Abdul Malik Ikhsan fc10fce13d
[Rectify] [Php81] Enable Rectify on Readonly Property only (#1384)
* re-enable rectify and ecs

* [Rectify] [Php81] Enable Rectify on Readonly Property only

* comment

* [ci-review] Rector Rectify

* [ci-review] Rector Rectify

* [ci-review] Rector Rectify

* [ci-review] Rector Rectify

* [ci-review] Rector Rectify

Co-authored-by: GitHub Action <action@github.com>
2021-12-04 15:32:52 +03:00

41 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
namespace Rector\ChangesReporting\Annotation;
use Rector\Core\Contract\Rector\RectorInterface;
final class RectorsChangelogResolver
{
public function __construct(
private readonly AnnotationExtractor $annotationExtractor
) {
}
/**
* @param array<class-string<RectorInterface>> $rectorClasses
* @return array<class-string, string>
*/
public function resolve(array $rectorClasses): array
{
$rectorClassesToChangelogUrls = $this->resolveIncludingMissing($rectorClasses);
return array_filter($rectorClassesToChangelogUrls);
}
/**
* @param array<class-string<RectorInterface>> $rectorClasses
* @return array<class-string, string|null>
*/
public function resolveIncludingMissing(array $rectorClasses): array
{
$rectorClassesToChangelogUrls = [];
foreach ($rectorClasses as $rectorClass) {
$changelogUrl = $this->annotationExtractor->extractAnnotationFromClass($rectorClass, '@changelog');
$rectorClassesToChangelogUrls[$rectorClass] = $changelogUrl;
}
return $rectorClassesToChangelogUrls;
}
}