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

tempestphp / tempest-framework / 14049246919

24 Mar 2025 09:42PM UTC coverage: 79.353% (-0.04%) from 79.391%
14049246919

push

github

web-flow
feat(support): support array parameters in string manipulations (#1073)

48 of 48 new or added lines in 2 files covered. (100.0%)

735 existing lines in 126 files now uncovered.

10492 of 13222 relevant lines covered (79.35%)

90.78 hits per line

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

85.71
/src/Tempest/Container/src/Dependency.php
1
<?php
2

3
declare(strict_types=1);
4

5
namespace Tempest\Container;
6

7
use Closure;
8
use Tempest\Reflection\ClassReflector;
9
use Tempest\Reflection\FunctionReflector;
10
use Tempest\Reflection\MethodReflector;
11
use Tempest\Reflection\ParameterReflector;
12
use Tempest\Reflection\Reflector;
13
use Tempest\Reflection\TypeReflector;
14

15
final readonly class Dependency
16
{
17
    public function __construct(
700✔
18
        public Reflector|Closure|string $dependency,
19
    ) {}
700✔
20

21
    public function getName(): string
700✔
22
    {
23
        return $this->resolveName($this->dependency);
700✔
24
    }
25

26
    public function getShortName(): string
666✔
27
    {
28
        return $this->resolveShortName($this->dependency);
666✔
29
    }
30

31
    public function equals(self $other): bool
2✔
32
    {
33
        return $this->getName() === $other->getName();
2✔
34
    }
35

36
    public function getTypeName(): string
122✔
37
    {
38
        $dependency = $this->dependency;
122✔
39

40
        if (is_string($dependency)) {
122✔
41
            $parts = explode('\\', $dependency);
1✔
42

43
            return $parts[array_key_last($parts)];
1✔
44
        }
45

46
        return match ($dependency::class) {
121✔
UNCOV
47
            ClassReflector::class => $dependency->getType()->getShortName(),
×
48
            MethodReflector::class => $dependency->getDeclaringClass()->getType()->getShortName(),
2✔
49
            ParameterReflector::class => $dependency->getType()->getShortName(),
119✔
UNCOV
50
            TypeReflector::class => $dependency->getShortName(),
×
51
            default => 'unknown',
121✔
52
        };
121✔
53
    }
54

55
    private function resolveName(Reflector|Closure|string $dependency): string
700✔
56
    {
57
        if (is_string($dependency)) {
700✔
58
            return $dependency;
3✔
59
        }
60

61
        return match ($dependency::class) {
698✔
62
            FunctionReflector::class => $dependency->getName() . ' in ' . $dependency->getFileName() . ':' . $dependency->getStartLine(),
672✔
63
            ClassReflector::class => $dependency->getName(),
680✔
64
            MethodReflector::class => $dependency->getDeclaringClass()->getName() . '::' . $dependency->getName(),
673✔
65
            ParameterReflector::class => $dependency->getType()->getName(),
119✔
UNCOV
66
            TypeReflector::class => $dependency->getName(),
×
67
            default => 'unknown',
698✔
68
        };
698✔
69
    }
70

71
    private function resolveShortName(Reflector|Closure|string $dependency): string
666✔
72
    {
73
        if (is_string($dependency)) {
666✔
74
            return $dependency;
1✔
75
        }
76

77
        return match ($dependency::class) {
666✔
78
            FunctionReflector::class => $dependency->getShortName() . ' in ' . $dependency->getFileName() . ':' . $dependency->getStartLine(),
1✔
UNCOV
79
            ClassReflector::class => $dependency->getShortName(),
×
80
            MethodReflector::class => $dependency->getShortName(),
665✔
UNCOV
81
            ParameterReflector::class => $dependency->getType()->getShortName(),
×
82
            TypeReflector::class => $dependency->getShortName(),
×
83
            default => 'unknown',
666✔
84
        };
666✔
85
    }
86
}
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