* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ namespace PrestaShop\Module\PrestashopCheckout\PayPal\Order\ValueObject; use PrestaShop\Module\PrestashopCheckout\PayPal\Order\Exception\PayPalOrderException; class PayPalOrderId { /** * @var string */ private $value; /** * @param string $value * * @throws PayPalOrderException */ public function __construct($value) { $this->assertStringIsMatchingRegex($value); $this->value = $value; } /** * @return string */ public function getValue() { return $this->value; } /** * @param string $value * * @throws PayPalOrderException */ public function assertStringIsMatchingRegex($value) { if (!is_string($value) || !preg_match('/^[0-9A-Z]+$/', $value)) { throw new PayPalOrderException(sprintf('PayPal Order id %s is invalid. PayPal Order id must be an alphanumeric string.', var_export($value, true)), PayPalOrderException::INVALID_ID); } } }