* SPDX-License-Identifier: MIT */ declare(strict_types=1); namespace Respect\Validation\Exceptions; use Respect\Validation\Helpers\CountryInfo; /** * @author Danilo Correa * @author Henrique Moody * @author Michael Firsikov */ final class PhoneException extends ValidationException { public const FOR_COUNTRY = 'for_country'; public const INTERNATIONAL = 'international'; /** * {@inheritDoc} */ protected $defaultTemplates = [ self::MODE_DEFAULT => [ self::INTERNATIONAL => '{{name}} must be a valid telephone number', self::FOR_COUNTRY => '{{name}} must be a valid telephone number for country {{countryName}}', ], self::MODE_NEGATIVE => [ self::INTERNATIONAL => '{{name}} must not be a valid telephone number', self::FOR_COUNTRY => '{{name}} must not be a valid telephone number for country {{countryName}}', ], ]; /** * {@inheritDoc} */ protected function chooseTemplate(): string { $countryCode = $this->getParam('countryCode'); if (!$countryCode) { return self::INTERNATIONAL; } $countryInfo = new CountryInfo($countryCode); $this->setParam('countryName', $countryInfo->getCountry()); return self::FOR_COUNTRY; } }