netglue/psr-container-postmark

PSR Containers 的 Postmark 客户端工厂

1.11.0 2024-01-05 00:17 UTC

README

PHPUnit Test Suite Type Coverage

介绍

这个非常小的库提供了用于创建发送邮件的服务器或管理账户的行政客户端的 PSR-11 兼容的工厂。

Postmark 是一个可靠的交易性电子邮件交付服务。这些工厂从它们的 官方 PHP 库 返回客户端。

安装

composer require netglue/psr-container-postmark

使用方法

默认情况下,容器将使用 ID config 查找应用程序配置,这是一个普遍接受的标准。如果你的 PSR-11 容器在调用 $container->get('config') 时不返回关联数组,那么这个库可能对你没有用。

默认情况下,期望 Postmark 特定配置位于 'postmark' 键下,尽管这可以被修改。

假设默认设置,客户端的配置应该看起来像这样

return [
    'postmark' => [
        'server_token' => 'Your Server Token',
        'server_timeout' => 30, // The default is 30, as per Postmark's libs so this option can be omitted
        'admin_token' => 'Your Account Token', // Only required if you are using the Admin client to manage an account
    ],
];

然后,你需要配置你的容器,将你选择的键映射到工厂类,比如

return [
    'dependencies' => [
        'factories' => [
            Postmark\PostmarkClient::class => Netglue\PsrContainer\Postmark\ClientFactory::class,
            Postmark\PostmarkAdminClient::class => Netglue\PsrContainer\Postmark\AdminClientFactory::class,
        ],
    ],   
];

如果你出于某种原因运行多个服务器,你可以按以下方式配置工厂以使用不同服务器的不同配置

return [
    'dependencies' => [
        'factories' => [
            'EmailServer1' => [Netglue\PsrContainer\Postmark\ClientFactory::class, 'postmark_server_1'],
            'EmailServer2' => [Netglue\PsrContainer\Postmark\ClientFactory::class, 'postmark_server_2'],
        ],
    ],   
];

基于上述容器设置,你需要指定两个包含服务器键的顶级配置数组,分别为 'postmark_server_1''postmark_server_2'

Laminas 集成

因为我大量使用 Laminas(以前称为 Zend)组件,这个库将利用 laminas-component-installer 在 composer 安装过程中自动绑定依赖关系(如果你选择允许的话)。

结束。