ClassNameConverter   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 0
dl 0
loc 26
ccs 9
cts 9
cp 1
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A convertClassNameToServiceName() 0 10 1
A convertServiceNameToClassName() 0 7 1
A stripNameSpace() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Werkspot\Enum\Util;
6
7
final class ClassNameConverter
8
{
9 2
    public static function convertClassNameToServiceName(string $className): string
10
    {
11 2
        $className = str_replace('\\', '.', $className);
12
13 2
        $serviceName = lcfirst($className);
14 2
        $serviceName = preg_replace('/([A-Z])/', '_$1', $serviceName);
15
16 2
        $serviceName = str_replace('._', '.', $serviceName);
17 2
        return strtolower($serviceName);
18
    }
19
20
    public static function convertServiceNameToClassName(string $serviceName): string
21
    {
22
        $className = preg_replace_callback('/\.([a-z])/', function($c) { return '\\' . ucfirst($c[1]); }, $serviceName);
23
24
        $className = preg_replace_callback('/_([a-z])/', function($c) { return ucfirst($c[1]); }, $className);
25 2
        return ucfirst($className);
26
    }
27
28 7
    public static function stripNameSpace(string $className): string
29
    {
30 7
        return preg_replace('|.+\\\\|', '', $className);
31
    }
32
}
33