Completed
Push — v3.0.0-dev ( c7f980...54069c )
by Hilmi Erdem
28:15
created

getRandomDigitWithNo0()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
dl 0
loc 10
rs 9.9332
c 0
b 0
f 0
ccs 0
cts 9
cp 0
cc 2
nc 2
nop 0
crap 6
1
<?php
2
3
/*
4
 * @copyright 2018 Hilmi Erdem KEREN
5
 * @license MIT
6
 */
7
8
namespace Erdemkeren\TemporaryAccess\PasswordGenerators;
9
10
use Exception;
11
use Erdemkeren\TemporaryAccess\PasswordGeneratorInterface;
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
    public function generate(int $length): string
26
    {
27
        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
    private function getRandomDigitWithNo0()
36
    {
37
        try {
38
            $int = random_int(1, 9);
39
        } catch (Exception $e) {
40
            $int = rand(1, 9);
41
        }
42
43
        return $int;
44
    }
45
}
46