nepada/email-address

电子邮件地址值对象。

v3.2.0 2023-09-28 11:30 UTC

README

Build Status Coverage Status Downloads this Month Latest stable

安装

通过 Composer

$ composer require nepada/email-address

使用

此包提供了两个电子邮件地址值对象的实现

  1. RfcEmailAddress - 它遵循RFCs,并将电子邮件地址的本地部分视为大小写敏感。域名部分被归一化到小写ASCII表示。
  2. CaseInsensitiveEmailAddress - 与 RfcEmailAddress 的唯一区别是本地部分被视为不区分大小写并归一化到小写。

您需要决定哪种实现适合您的需求。如果您想同时支持两种实现,请使用 Nepada\EmailAddress\EmailAddress 作为类型提示。您还可以使用 RfcEmailAddress::toCaseInsensitiveEmailAddress()CaseInsensitiveEmailAddress::toRfcEmailAddress() 将一种表示转换为另一种表示。

创建值对象

$rfcEmailAddress = Nepada\EmailAddress\RfcEmailAddress::fromString('Real.example+suffix@HÁČKYčárky.cz');
$rfcEmailAddress = Nepada\EmailAddress\RfcEmailAddress::fromDomainAndLocalPart('HÁČKYčárky.cz', 'Real.example+suffix');

$ciEmailAddress = Nepada\EmailAddress\CaseInsensitiveEmailAddress::fromString('Real.example+suffix@HÁČKYčárky.cz');
$ciEmailAddress = Nepada\EmailAddress\CaseInsensitiveEmailAddress::fromDomainAndLocalPart('HÁČKYčárky.cz', 'Real.example+suffix');

在输入值无效的情况下会抛出 Nepada\EmailAddress\InvalidEmailAddressException

转换回字符串

将值对象转换为字符串,将得到原始(非规范)的电子邮件地址字符串表示。

echo((string) $emailAddress); // Real.example+suffix@HÁČKYčárky.cz
echo($emailAddress->toString()); // Real.example+suffix@HÁČKYčárky.cz

电子邮件地址的规范字符串表示

echo($emailAddress->getValue()); // real.example+suffix@xn--hkyrky-ptac70bc.cz

分别获取归一化的本地和域名部分

echo($emailAddress->getLocalPart()); // real.example+suffix
echo($emailAddress->getDomain()); // xn--hkyrky-ptac70bc.cz

集成