getRandomDigitWithNo0()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 5
dl 0
loc 9
rs 10
c 0
b 0
f 0
ccs 5
cts 5
cp 1
cc 2
nc 2
nop 0
crap 2
1
<?php
2
3
/*
4
 * @copyright 2018 Hilmi Erdem KEREN
5
 * @license MIT
6
 */
7
8
namespace Erdemkeren\Otp\PasswordGenerators;
9
10
use Erdemkeren\Otp\PasswordGeneratorInterface;
11
use Exception;
12
13
/**
14
 * Class NumericNo0PasswordGenerator.
15
 */
16
class NumericNo0PasswordGenerator extends NumericPasswordGenerator implements PasswordGeneratorInterface
17
{
18
    /**
19
     * Generate a numeric password with no zeroes.
20
     *
21
     * @param int $length
22
     *
23
     * @return string
24
     */
25 2
    public function generate(int $length): string
26
    {
27 2
        return (string) str_replace(0, $this->getRandomDigitWithNo0(), (string) parent::generate($length));
28
    }
29
30
    /**
31
     * Generate a random digit with no zeroes.
32
     *
33
     * @return int
34
     */
35 2
    private function getRandomDigitWithNo0()
36
    {
37
        try {
38 2
            $int = random_int(1, 9);
39 1
        } catch (Exception $e) {
40 1
            $int = rand(1, 9);
41
        }
42
43 2
        return $int;
44
    }
45
}
46