| Conditions | 3 |
| Paths | 4 |
| Total Lines | 22 |
| Code Lines | 14 |
| Lines | 0 |
| Ratio | 0 % |
| Tests | 12 |
| CRAP Score | 3 |
| Changes | 0 | ||
| 1 | <?php |
||
| 56 | 3 | public function generate(int $length): string |
|
| 57 | { |
||
| 58 | $sets = [ |
||
| 59 | 3 | 'abcdefghjkmnpqrstuvwxyz', |
|
| 60 | 'ABCDEFGHJKMNPQRSTUVWXYZ', |
||
| 61 | '23456789', |
||
| 62 | ]; |
||
| 63 | 3 | $all = ''; |
|
| 64 | 3 | $password = ''; |
|
| 65 | 3 | foreach ($sets as $set) { |
|
| 66 | 3 | $password .= $set[array_rand(str_split($set))]; |
|
| 67 | 3 | $all .= $set; |
|
| 68 | } |
||
| 69 | |||
| 70 | 3 | $all = str_split($all); |
|
| 71 | 3 | for ($i = 0; $i < $length - count($sets); $i++) { |
|
| 72 | 3 | $password .= $all[array_rand($all)]; |
|
| 73 | } |
||
| 74 | |||
| 75 | 3 | $password = str_shuffle($password); |
|
| 76 | |||
| 77 | 3 | return $password; |
|
| 78 | } |
||
| 80 |