gocanto/blinky

此包已废弃,不再维护。未建议替代包。

基于驱动的电子邮件验证器。

安装: 8

依赖者: 0

建议者: 0

安全: 0

星标: 12

关注者: 1

分支: 0

开放问题: 1

类型:php-bundle

1.2.0 2020-06-10 02:51 UTC

This package is auto-updated.

Last update: 2024-08-10 11:27:12 UTC


README

Total Downloads Latest Stable Version Build status

Blinky 是一个基于驱动的电子邮件验证器,可以帮助您验证电子邮件输入是否与不同的电子邮件提供商兼容。

安装

此库使用 Composer 来管理其依赖。因此,在使用它之前,请确保您已在您的计算机上安装了它。完成此操作后,您可以通过在终端中键入以下命令来拉取此库。

composer require gocanto/blinky

背后的原因

有时您可能需要验证给定的 电子邮件地址 超过静态验证,因为您可能需要使用它们在应用程序中通知用户。因此,我们需要一个可以实际为我们验证这些电子邮件的电子邮件提供商服务。这样我们就可以确信我们的生产数据按预期工作。

它是如何工作的?

如前所述,此库由不同的电子邮件提供商驱动。因此,所有内容都隐藏在 Verifier 接口之后。这种抽象使我们能够通过告诉我们的应用程序在运行时想要使用哪个 客户端 来交换 提供商 实现。

这意味着,您将需要将您选择的提供商与 Ioc(服务容器)中的 Verifier 接口绑定。通过这样做,您的应用程序将知道在给定时间应使用哪个实现。

可用的客户端提供商

  • Mailgun
  • 未来将提供更多 :)

绑定验证器接口

绑定此接口将取决于您正在开发的应用程序类型。您需要确保的是,您需要尽早绑定此接口,以便您的请求能够解析正确的底层提供商。

假设您的 Ioc 容器提供了一个 bind 方法,那么您需要做的就是将接口绑定到服务提供商中所需的实现。如下所示

use Blinky\Verifier;
use Blinky\Mailgun\Client;
use Gocanto\HttpClient\HttpClient;
use Blinky\Mailgun\Credentials;

$container->bind(Verifier::class, static function () {
    return new Client(Credentials::live(), new HttpClient());
});

使用 Mailgun 提供商

  • 首先,您需要创建其 credentials 对象,这些对象将用于查询电子邮件验证。如下所示
use Blinky\Mailgun\Credentials;

$credentials = Credentials::live();
$credentials->setUsername('api-username');
$credentials->setApiKey('api-production-key');
  • 创建此对象后,您可以通过传递给定的凭据和 Http 传输来创建您的 Mailgun 客户端。如下所示
use Blinky\Mailgun\Client;
use Gocanto\HttpClient\HttpClient;

// we are assuming we have the credentials object here. See the above example for more info.
$client = new Client($credentials, new HttpClient());
  • 在您有了客户端实例后,您可以从现在开始验证您的电子邮件以保持应用程序的一致性。如下所示
$response = $client->verify('youremail@domain.com');

响应对象将包含给定的电子邮件是否有效以及从请求返回的负载。您可以在 这里 了解更多关于其性质的信息。

开发帮助

有时您需要测试使用此实现的代码的一部分,那么每次您刷新网页时,您都将不得不进行 Http 请求。为此,我们还提供了一个 Null 客户端,旨在在不更改您已有的任何代码的情况下协助这项任务。您需要做的唯一一件事是在非生产环境中将 Null 客户端绑定到您的应用程序。

贡献

请随意fork这个包,通过提交一个pull请求来增强其功能。

许可

MIT 许可证(MIT)。有关更多信息,请参阅 许可文件

我该如何感谢您呢?

为什么不给github仓库点个赞,并在Twitter上分享这个仓库的链接呢?

别忘了在 Twitter上关注我

谢谢!

古斯塔沃·奥坎托。