PluginProbe
User Access Manager / 2.3.20
User Access Manager v2.3.20
2.3.20 2.3.19 2.3.18 2.3.17 2.3.16 2.3.15 2.3.14 2.3.13 trunk 0.6 0.6.1 0.6.2 0.7 0.7 Beta 0.7.0.1 0.8 0.8.0.1 0.8.0.2 0.9 0.9.1 0.9.1.1 0.9.1.2 0.9.1.3 0.9.1.4 1.0 All 136 releases
user-access-manager / src / Util / Util.php

Util.php in User Access Manager 2.3.20, at src/Util/Util.php

50 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace UserAccessManager\Util;
6
7 use Exception;
8 use UserAccessManager\Wrapper\Php;
9
10 class Util
11 {
12 public function __construct(private Php $php)
13 {
14 }
15
16 public function startsWith(string $haystack, string $needle): bool
17 {
18 return str_starts_with($haystack, $needle);
19 }
20
21 public function endsWith(string $haystack, string $needle): bool
22 {
23 return str_ends_with($haystack, $needle);
24 }
25
26 /**
27 * @throws Exception
28 */
29 public function getRandomPassword(int $length = 32): string
30 {
31 $bytes = $this->php->opensslRandomPseudoBytes($length + 1, $strong);
32
33 if ($bytes === false || $strong !== true) {
34 throw new Exception('Unable to generate secure token from OpenSSL.');
35 }
36
37 return substr(preg_replace('/[^a-zA-Z0-9]/', '', base64_encode($bytes)), 0, $length);
38 }
39
40 public function getCurrentUrl(): string
41 {
42 $requestUri = $_SERVER['REQUEST_URI'] ?? $_SERVER['PHP_SELF'];
43 $secure = (($_SERVER['HTTPS'] ?? '') === 'on') ? 's' : '';
44 $scheme = explode('/', strtolower($_SERVER['SERVER_PROTOCOL']))[0] . $secure;
45 $port = ((int) $_SERVER['SERVER_PORT'] === 80) ? '' : ':' . $_SERVER['SERVER_PORT'];
46
47 return $scheme . '://' . $_SERVER['SERVER_NAME'] . $port . $requestUri;
48 }
49 }
50