PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.20
Booking for Appointments and Events Calendar – Amelia v1.2.20
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 / Number / Float / Price.php
ameliabooking / src / Domain / ValueObjects / Number / Float Last commit date
FloatValue.php 7 years ago Price.php 4 years ago
Price.php
55 lines
1 <?php
2
3 namespace AmeliaBooking\Domain\ValueObjects\Number\Float;
4
5 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
6
7 /**
8 * Class Price
9 *
10 * @package AmeliaBooking\Domain\ValueObjects\Number\Float
11 */
12 final class Price
13 {
14 /**
15 * @var string
16 */
17 private $price;
18
19 /**
20 * Price constructor.
21 *
22 * @param string $price
23 *
24 * @throws InvalidArgumentException
25 */
26 public function __construct($price)
27 {
28 if ($price === null) {
29 throw new InvalidArgumentException('Price can\'t be empty');
30 }
31
32 if (filter_var($price, FILTER_VALIDATE_FLOAT) === false &&
33 filter_var(str_replace(',', '.', (string)$price), FILTER_VALIDATE_FLOAT) === false
34 ) {
35 throw new InvalidArgumentException("Price \"{$price}\" must be float");
36 }
37
38 if ($price < 0) {
39 throw new InvalidArgumentException('Price must be larger then or equal to 0');
40 }
41
42 $this->price = (float)$price;
43 }
44
45 /**
46 * Return the price from the value object
47 *
48 * @return float
49 */
50 public function getValue()
51 {
52 return $this->price;
53 }
54 }
55