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 / Number / Float / Price.php
ameliabooking / src / Domain / ValueObjects / Number / Float Last commit date
FloatValue.php 6 months ago Price.php 6 months ago
Price.php
56 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 float
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 (
33 filter_var($price, FILTER_VALIDATE_FLOAT) === false &&
34 filter_var(str_replace(',', '.', (string)$price), FILTER_VALIDATE_FLOAT) === false
35 ) {
36 throw new InvalidArgumentException("Price \"{$price}\" must be float");
37 }
38
39 if ($price < 0) {
40 throw new InvalidArgumentException('Price must be larger then or equal to 0');
41 }
42
43 $this->price = (float)$price;
44 }
45
46 /**
47 * Return the price from the value object
48 *
49 * @return float
50 */
51 public function getValue()
52 {
53 return $this->price;
54 }
55 }
56