/** * @param string $name * @param string $street * @param string $postCode * @param string $city * @param string $countryIso2code * @throws InvalidArgumentException */ public function __construct(string $name, string $street, string $postCode, string $city, string $countryIso2code) { if (empty($name)) { throw InvalidArgumentException::invalidAddress('', 'name'); } if (empty($street)) { throw InvalidArgumentException::invalidAddress('', 'street'); } if (empty($postCode)) { throw InvalidArgumentException::invalidAddress('', 'post code'); } if (empty($city)) { throw InvalidArgumentException::invalidAddress('', 'city'); } if (empty($countryIso2code)) { throw InvalidArgumentException::invalidAddress('', 'country ISO2 code'); } if (mb_strlen($countryIso2code) !== 2) { throw InvalidArgumentException::invalidAddress($countryIso2code, 'country ISO2 code'); } $this->name = $name; $this->street = $street; $this->postCode = $postCode; $this->city = $city; $this->countryIso2code = $countryIso2code; }
/** * @param CartId $cartId * @param string $currency * * @throws InvalidArgumentException */ public function __construct(CartId $cartId, string $currency) { if (!Currencies::isValid($currency)) { throw InvalidArgumentException::invalidCurrency($currency); } $this->id = $cartId; $this->items = []; $this->currency = $currency; }