PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Domain / ValueObjects / String / Password.php
ameliabooking / src / Domain / ValueObjects / String Last commit date
Address.php 1 year ago AmountType.php 6 months ago BookableType.php 6 months ago BookingStatus.php 6 months ago BookingType.php 6 months ago Color.php 1 year ago CouponCode.php 1 year ago CustomFieldSaveType.php 6 months ago CustomFieldType.php 6 months ago Cycle.php 1 year ago DayOffType.php 2 months ago DepositType.php 6 months ago Description.php 6 months ago Email.php 1 month ago EntityType.php 6 months ago FeeType.php 6 months ago Html.php 1 year ago Label.php 1 year ago Name.php 1 year ago NotificationSendTo.php 6 months ago NotificationStatus.php 6 months ago NotificationType.php 6 months ago Password.php 1 year ago PaymentData.php 6 months ago PaymentStatus.php 6 months ago PaymentType.php 6 months ago Phone.php 1 year ago Status.php 1 year ago StripeAccountId.php 1 year ago StripeAccountType.php 1 year ago Token.php 1 year ago Url.php 1 year ago
Password.php
74 lines
1 <?php
2
3 namespace AmeliaBooking\Domain\ValueObjects\String;
4
5 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
6
7 /**
8 * Class Password
9 *
10 * @package AmeliaBooking\Domain\ValueObjects\String
11 */
12 final class Password
13 {
14 public const MIN_LENGTH = 4;
15 public const MAX_LENGTH = 128;
16 /**
17 * @var string
18 */
19 private $password;
20
21 /**
22 * Email constructor.
23 *
24 * @param string $password
25 *
26 * @throws InvalidArgumentException
27 */
28 public function __construct($password)
29 {
30 if ($password && strlen($password) < static::MIN_LENGTH) {
31 throw new InvalidArgumentException('Password must be longer than ' . static::MIN_LENGTH . ' char');
32 }
33
34 $this->password = password_hash($password, PASSWORD_DEFAULT);
35 }
36
37 /**
38 * Create a Password value object from an hashed password
39 *
40 * @param string $password
41 *
42 * @return Password
43 */
44 public static function createFromHashedPassword($password)
45 {
46 $self = unserialize(sprintf('O:%u:"%s":0:{}', strlen(self::class), self::class));
47 $self->password = $password;
48
49 return $self;
50 }
51
52 /**
53 * Return true if password is valid, otherwise false
54 *
55 * @param string $password
56 *
57 * @return bool
58 */
59 public function checkValidity($password)
60 {
61 return password_verify($password, $this->password ? $this->password : '');
62 }
63
64 /**
65 * Return the password from the value object
66 *
67 * @return string
68 */
69 public function getValue()
70 {
71 return $this->password;
72 }
73 }
74