name: Address class_comment: null dependencies: - name: EmailValidator type: class source: Egulias\EmailValidator\EmailValidator - name: MessageIDValidation type: class source: Egulias\EmailValidator\Validation\MessageIDValidation - name: RFCValidation type: class source: Egulias\EmailValidator\Validation\RFCValidation - name: IdnAddressEncoder type: class source: Symfony\Component\Mime\Encoder\IdnAddressEncoder - name: InvalidArgumentException type: class source: Symfony\Component\Mime\Exception\InvalidArgumentException - name: LogicException type: class source: Symfony\Component\Mime\Exception\LogicException - name: RfcComplianceException type: class source: Symfony\Component\Mime\Exception\RfcComplianceException properties: [] methods: - name: createArray visibility: public parameters: - name: addresses comment: "# * @author Fabien Potencier \n# */\n# final class\ \ Address\n# {\n# /**\n# * A regex that matches a structure like 'Name '.\n\ # * It matches anything between the first < and last > as email address.\n# *\ \ This allows to use a single string to construct an Address, which can be convenient\ \ to use in\n# * config, and allows to have more readable config.\n# * This does\ \ not try to cover all edge cases for address.\n# */\n# private const FROM_STRING_PATTERN\ \ = '~(?[^<]*)<(?.*)>[^>]*~';\n# \n# private static EmailValidator\ \ $validator;\n# private static IdnAddressEncoder $encoder;\n# \n# private string\ \ $address;\n# private string $name;\n# \n# public function __construct(string\ \ $address, string $name = '')\n# {\n# if (!class_exists(EmailValidator::class))\ \ {\n# throw new LogicException(\\sprintf('The \"%s\" class cannot be used as\ \ it needs \"%s\". Try running \"composer require egulias/email-validator\".',\ \ __CLASS__, EmailValidator::class));\n# }\n# \n# self::$validator ??= new EmailValidator();\n\ # \n# $this->address = trim($address);\n# $this->name = trim(str_replace([\"\\\ n\", \"\\r\"], '', $name));\n# \n# if (!self::$validator->isValid($this->address,\ \ class_exists(MessageIDValidation::class) ? new MessageIDValidation() : new RFCValidation()))\ \ {\n# throw new RfcComplianceException(\\sprintf('Email \"%s\" does not comply\ \ with addr-spec of RFC 2822.', $address));\n# }\n# }\n# \n# public function getAddress():\ \ string\n# {\n# return $this->address;\n# }\n# \n# public function getName():\ \ string\n# {\n# return $this->name;\n# }\n# \n# public function getEncodedAddress():\ \ string\n# {\n# self::$encoder ??= new IdnAddressEncoder();\n# \n# return self::$encoder->encodeString($this->address);\n\ # }\n# \n# public function toString(): string\n# {\n# return ($n = $this->getEncodedName())\ \ ? $n.' <'.$this->getEncodedAddress().'>' : $this->getEncodedAddress();\n# }\n\ # \n# public function getEncodedName(): string\n# {\n# if ('' === $this->getName())\ \ {\n# return '';\n# }\n# \n# return \\sprintf('\"%s\"', preg_replace('/\"/u',\ \ '\\\"', $this->getName()));\n# }\n# \n# public static function create(self|string\ \ $address): self\n# {\n# if ($address instanceof self) {\n# return $address;\n\ # }\n# \n# if (!str_contains($address, '<')) {\n# return new self($address);\n\ # }\n# \n# if (!preg_match(self::FROM_STRING_PATTERN, $address, $matches)) {\n\ # throw new InvalidArgumentException(\\sprintf('Could not parse \"%s\" to a \"\ %s\" instance.', $address, self::class));\n# }\n# \n# return new self($matches['addrSpec'],\ \ trim($matches['displayName'], ' \\'\"'));\n# }\n# \n# /**\n# * @param array\ \ $addresses\n# *\n# * @return Address[]" traits: - Egulias\EmailValidator\EmailValidator - Egulias\EmailValidator\Validation\MessageIDValidation - Egulias\EmailValidator\Validation\RFCValidation - Symfony\Component\Mime\Encoder\IdnAddressEncoder - Symfony\Component\Mime\Exception\InvalidArgumentException - Symfony\Component\Mime\Exception\LogicException - Symfony\Component\Mime\Exception\RfcComplianceException interfaces: []