nepada / email-address
电子邮件地址值对象。
v3.2.0
2023-09-28 11:30 UTC
Requires
- php: >=8.1.0 <8.4
- ext-intl: *
- ext-mbstring: *
- nette/utils: ^3.2@dev || ^4.0@dev
Requires (Dev)
- nepada/coding-standard: 7.12.0
- nepada/phpstan-nette-tester: 1.1.0
- nette/tester: v2.5.1
- php-parallel-lint/php-parallel-lint: 1.3.2
- phpstan/phpstan: 1.10.32
- phpstan/phpstan-nette: 1.2.9
- phpstan/phpstan-strict-rules: 1.5.1
- shipmonk/phpstan-rules: 2.7.0
- spaze/phpstan-disallowed-calls: 2.16.0
README
安装
通过 Composer
$ composer require nepada/email-address
使用
此包提供了两个电子邮件地址值对象的实现
RfcEmailAddress
- 它遵循RFCs,并将电子邮件地址的本地部分视为大小写敏感。域名部分被归一化到小写ASCII表示。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
集成
- nepada/email-address-doctrine - Doctrine的电子邮件地址类型。
- nepada/email-address-input - Nette表单的电子邮件地址表单输入。