PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 3.8.0
WP STAGING – WordPress Backup, Restore, Migration & Clone v3.8.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
AccessToken.php 2 years ago Auth.php 2 years ago Capabilities.php 2 years ago DataEncryption.php 2 years 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