• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

keradus / PHP-CS-Fixer / 17252691116

26 Aug 2025 11:09PM UTC coverage: 94.743% (-0.01%) from 94.755%
17252691116

push

github

keradus
chore: apply phpdoc_tag_no_named_arguments

28313 of 29884 relevant lines covered (94.74%)

45.64 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

95.65
/src/Tokenizer/Transformers.php
1
<?php
2

3
declare(strict_types=1);
4

5
/*
6
 * This file is part of PHP CS Fixer.
7
 *
8
 * (c) Fabien Potencier <fabien@symfony.com>
9
 *     Dariusz Rumiński <dariusz.ruminski@gmail.com>
10
 *
11
 * This source file is subject to the MIT license that is bundled
12
 * with this source code in the file LICENSE.
13
 */
14

15
namespace PhpCsFixer\Tokenizer;
16

17
use Symfony\Component\Finder\Finder;
18

19
/**
20
 * Collection of Transformer classes.
21
 *
22
 * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
23
 *
24
 * @internal
25
 *
26
 * @no-named-arguments Parameter names are not covered by the backward compatibility promise.
27
 */
28
final class Transformers
29
{
30
    /**
31
     * The registered transformers.
32
     *
33
     * @var list<TransformerInterface>
34
     */
35
    private array $items = [];
36

37
    /**
38
     * Register built in Transformers.
39
     */
40
    private function __construct()
41
    {
42
        $this->registerBuiltInTransformers();
1✔
43

44
        usort($this->items, static fn (TransformerInterface $a, TransformerInterface $b): int => $b->getPriority() <=> $a->getPriority());
1✔
45
    }
46

47
    public static function createSingleton(): self
48
    {
49
        static $instance = null;
1✔
50

51
        if (!$instance) {
1✔
52
            $instance = new self();
1✔
53
        }
54

55
        return $instance;
1✔
56
    }
57

58
    /**
59
     * Transform given Tokens collection through all Transformer classes.
60
     *
61
     * @param Tokens $tokens Tokens collection
62
     */
63
    public function transform(Tokens $tokens): void
64
    {
65
        foreach ($this->items as $transformer) {
1✔
66
            foreach ($tokens as $index => $token) {
1✔
67
                $transformer->process($tokens, $token, $index);
1✔
68
            }
69
        }
70
    }
71

72
    /**
73
     * @param TransformerInterface $transformer Transformer
74
     */
75
    private function registerTransformer(TransformerInterface $transformer): void
76
    {
77
        if (\PHP_VERSION_ID >= $transformer->getRequiredPhpVersionId()) {
1✔
78
            $this->items[] = $transformer;
1✔
79
        }
80
    }
81

82
    private function registerBuiltInTransformers(): void
83
    {
84
        static $registered = false;
1✔
85

86
        if ($registered) {
1✔
87
            return;
×
88
        }
89

90
        $registered = true;
1✔
91

92
        foreach ($this->findBuiltInTransformers() as $transformer) {
1✔
93
            $this->registerTransformer($transformer);
1✔
94
        }
95
    }
96

97
    /**
98
     * @return \Generator<TransformerInterface>
99
     */
100
    private function findBuiltInTransformers(): iterable
101
    {
102
        foreach (Finder::create()->files()->in(__DIR__.'/Transformer') as $file) {
1✔
103
            $relativeNamespace = $file->getRelativePath();
1✔
104
            $class = __NAMESPACE__.'\Transformer\\'.('' !== $relativeNamespace ? $relativeNamespace.'\\' : '').$file->getBasename('.php');
1✔
105

106
            $instance = new $class();
1✔
107

108
            \assert($instance instanceof TransformerInterface);
1✔
109

110
            yield $instance;
1✔
111
        }
112
    }
113
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc