PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 4.3.0
WP STAGING – WordPress Backup, Restore, Migration & Clone v4.3.0
4.9.1 4.9.0 4.8.1 trunk 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.10.0 3.2.0 3.3.1 3.3.2 3.3.3 3.4.1 3.4.3 3.5.0 3.6.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.8.0
wp-staging / Framework / Security / UniqueIdentifier.php
wp-staging / Framework / Security Last commit date
Otp 1 year ago AccessToken.php 11 months ago Auth.php 2 years ago Capabilities.php 1 year ago DataEncryption.php 1 year ago Nonce.php 3 years ago UniqueIdentifier.php 3 years ago
UniqueIdentifier.php
52 lines
1 <?php
2
3 namespace WPStaging\Framework\Security;
4
5 /**
6 * Class UniqueIdentifier
7 *
8 * Use to create a unique id that is currently used in cloning related logs file names
9 *
10 * @package WPStaging\Framework\Security
11 */
12 class UniqueIdentifier
13 {
14 /** @var string */
15 const IDENTIFIER_OPTION_NAME = 'wpstg_unique_identifier';
16
17 /** @var string */
18 private $identifier;
19
20 /** @return string */
21 public function getIdentifier()
22 {
23 // Early bail: if unique identifier is already set
24 if (!empty($this->identifier)) {
25 return $this->identifier;
26 }
27
28 // Cache the result
29 $this->identifier = get_option(self::IDENTIFIER_OPTION_NAME);
30 if (empty($this->identifier)) {
31 $this->identifier = $this->generateIdentifier();
32 update_option(self::IDENTIFIER_OPTION_NAME, $this->identifier);
33 }
34
35 return $this->identifier;
36 }
37
38 /** @return string */
39 public function generateIdentifier($length = 16)
40 {
41 $allowedChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
42 $uniqueId = '';
43
44 for ($i = 0; $i < $length; $i++) {
45 $index = rand(0, strlen($allowedChars) - 1);
46 $uniqueId .= $allowedChars[$index];
47 }
48
49 return $uniqueId;
50 }
51 }
52