Completed
Push — master ( f0b7fa...fee256 )
by Saulius
10s
created

Ucnp   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 10
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 10
ccs 6
cts 6
cp 1
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A execute() 0 8 1
1
<?php
2
/**
3
 * This file is part of the sauls/helpers package.
4
 *
5
 * @author    Saulius Vaičeliūnas <[email protected]>
6
 * @link      http://saulius.vaiceliunas.lt
7
 * @copyright 2018
8
 *
9
 * For the full copyright and license information, please view the LICENSE
10
 * file that was distributed with this source code.
11
 */
12
13
namespace Sauls\Component\Helper\Operation\ClassOperation;
14
15
class Ucnp implements UcnpInterface
16
{
17 10
    public function execute(string $value): string
18
    {
19 10
        preg_match('~([^\\\\]+?)?$~i', $value, $matches);
20
21 10
        return strtolower(preg_replace(
22 10
            ['/([A-Z]+)([A-Z][a-z])/', '/([a-z\d])([A-Z])/'],
23 10
            ['\\1_\\2', '\\1_\\2'],
24 10
            $matches[1]
25
        ));
26
    }
27
}
28