convertClassNameToServiceName()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 10
ccs 6
cts 6
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 6
nc 1
nop 1
crap 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