Skip to content

Commit 1a07f89

Browse files
Declare Builder mixin methods as static for static analysis support
Successfully resolved the issue where static analysis tools couldn't discover static method calls on FormatterBuilder by updating the Builder mixin interface. Key Points * No breaking changes: Only interface declarations changed; actual implementation behavior is unchanged * Static analysis support: Tools can now properly discover FormatterBuilder::method() calls * Chain mixin unchanged: Instance methods remain for chaining pattern $builder->method() * Security: CodeQL scan completed with no issues found * Backward compatible: Existing code continues to work without modification Co-authored-by: Henrique Moody <henriquemoody@gmail.com>
1 parent 3a9d71c commit 1a07f89

2 files changed

Lines changed: 13 additions & 12 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.phpcs.cache
22
.phpunit.cache/
3+
.phpunit.result.cache
34
/vendor/

src/Mixin/Builder.php

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,32 +16,32 @@
1616
/** @mixin FormatterBuilder */
1717
interface Builder
1818
{
19-
public function area(string $unit): FormatterBuilder;
19+
public static function area(string $unit): FormatterBuilder;
2020

21-
public function imperialArea(string $unit): FormatterBuilder;
21+
public static function imperialArea(string $unit): FormatterBuilder;
2222

23-
public function imperialLength(string $unit): FormatterBuilder;
23+
public static function imperialLength(string $unit): FormatterBuilder;
2424

25-
public function imperialMass(string $unit): FormatterBuilder;
25+
public static function imperialMass(string $unit): FormatterBuilder;
2626

27-
public function date(string $format = 'Y-m-d H:i:s'): FormatterBuilder;
27+
public static function date(string $format = 'Y-m-d H:i:s'): FormatterBuilder;
2828

29-
public function mask(string $range, string $replacement = '*'): FormatterBuilder;
29+
public static function mask(string $range, string $replacement = '*'): FormatterBuilder;
3030

31-
public function metric(string $unit): FormatterBuilder;
31+
public static function metric(string $unit): FormatterBuilder;
3232

33-
public function number(
33+
public static function number(
3434
int $decimals = 0,
3535
string $decimalSeparator = '.',
3636
string $thousandsSeparator = ',',
3737
): FormatterBuilder;
3838

39-
public function metricMass(string $unit): FormatterBuilder;
39+
public static function metricMass(string $unit): FormatterBuilder;
4040

41-
public function pattern(string $pattern): FormatterBuilder;
41+
public static function pattern(string $pattern): FormatterBuilder;
4242

4343
/** @param array<string, mixed> $parameters */
44-
public function placeholder(array $parameters): FormatterBuilder;
44+
public static function placeholder(array $parameters): FormatterBuilder;
4545

46-
public function time(string $unit): FormatterBuilder;
46+
public static function time(string $unit): FormatterBuilder;
4747
}

0 commit comments

Comments
 (0)