类 TransportFactory
用于生成电子邮件传输实例的工厂类。
属性摘要
-
$_config protected static
array<string|int, array<string, mixed>>配置集。
-
$_dsnClassMap protected static
array<string, string>一个将 URL 方案映射到完全限定的 Transport 类名的数组
-
$_registry protected static
Cake\Mailer\TransportRegistry用于创建和使用传输实例的传输注册表。
方法摘要
-
_buildTransport() protected static
查找并构建所需传输类的实例。
-
configured() public static
返回包含命名配置的数组
-
drop() public static
删除已构造的适配器。
-
get() public static
获取传输实例。
-
getConfig() public static
读取现有配置。
-
getConfigOrFail() public static
读取特定键的现有配置。
-
getDsnClassMap() public static
返回此类的 DSN 类映射。
-
getRegistry() public static
返回用于创建和使用传输实例的传输注册表。
-
parseDsn() public static
将 DSN 解析为有效的连接配置
-
setConfig() public static
此方法可用于为应用程序定义配置适配器。
-
setDsnClassMap() public static
更新此类的 DSN 类映射。
-
setRegistry() public static
设置用于创建和使用传输实例的传输注册表实例。
方法详细信息
_buildTransport() ¶ protected static
_buildTransport(string $name): void
查找并构建所需传输类的实例。
参数
-
string$name 需要构建传输实例的配置数组的名称
返回
void抛出
InvalidArgumentException当无法创建传输时。
drop() ¶ public static
drop(string $config): bool
删除已构造的适配器。
如果要修改现有配置,应先删除它,更改配置,然后重新添加它。
如果实现的对象支持一个 $_registry 对象,则命名配置也将从注册表中卸载。
参数
-
string$config 要删除的现有配置。
返回
boolget() ¶ public static
get(string $name): Cake\Mailer\AbstractTransport
获取传输实例。
参数
-
string$name 配置名称。
返回
Cake\Mailer\AbstractTransportgetConfig() ¶ public static
getConfig(string $key): mixed|null
读取现有配置。
参数
-
string$key 配置的名称。
返回
mixed|nullgetConfigOrFail() ¶ public static
getConfigOrFail(string $key): mixed
读取特定键的现有配置。
此键的配置值必须存在,永远不能为 null。
参数
-
string$key 配置的名称。
返回
mixed抛出
InvalidArgumentException如果值不存在。
getDsnClassMap() ¶ public static
getDsnClassMap(): array<string, class-string>
返回此类的 DSN 类映射。
返回
array<string, class-string>getRegistry() ¶ public static
getRegistry(): Cake\Mailer\TransportRegistry
返回用于创建和使用传输实例的传输注册表。
返回
Cake\Mailer\TransportRegistryparseDsn() ¶ public static
parseDsn(string $dsn): array<string, mixed>
将 DSN 解析为有效的连接配置
此方法允许使用类似于 PEAR::DB 中使用的格式设置 DSN。以下是其用法的示例
$dsn = 'mysql://user:pass@localhost/database?';
$config = ConnectionManager::parseDsn($dsn);
$dsn = 'Cake\Log\Engine\FileLog://?types=notice,info,debug&file=debug&path=LOGS';
$config = Log::parseDsn($dsn);
$dsn = 'smtp://user:secret@localhost:25?timeout=30&client=null&tls=null';
$config = Email::parseDsn($dsn);
$dsn = 'file:///?className=\My\Cache\Engine\FileEngine';
$config = Cache::parseDsn($dsn);
$dsn = 'File://?prefix=myapp_cake_translations_&serialize=true&duration=+2 minutes&path=/tmp/persistent/';
$config = Cache::parseDsn($dsn);
对于所有类,scheme 的值都设置为 className 的值,除非它们已另行指定。
请注意,查询字符串参数也会被解析并设置为返回配置中的值。
参数
-
string$dsn 要转换为配置数组的 DSN 字符串
返回
array<string, mixed>抛出
InvalidArgumentException如果没有传递字符串,或者传递了无效字符串
setConfig() ¶ public static
setConfig(array<string, mixed>|string $key, mixed $config = null): void
此方法可用于为应用程序定义配置适配器。
要在运行时更改适配器的配置,首先删除适配器,然后重新配置它。
适配器在执行第一个操作之前不会被构造。
用法
假设该类的名称是 Cache,则支持以下方案
设置缓存引擎。
Cache::setConfig('default', $settings);
注入已构造的适配器
Cache::setConfig('default', $instance);
一次配置多个适配器
Cache::setConfig($arrayOfConfig);
参数
-
array<string, mixed>|string$key 配置的名称,或多个配置的数组。
-
mixed$config optional 配置值。通常是适配器名称 => 配置数据的数组。
返回
void抛出
BadMethodCallException当尝试修改现有配置时。
LogicException当尝试存储结构无效的配置数组时。
setDsnClassMap() ¶ public static
setDsnClassMap(array<string, string> $map): void
更新此类的 DSN 类映射。
参数
-
array<string, string>$map 要应用的类映射的添加/编辑。
返回
voidsetRegistry() ¶ public static
setRegistry(Cake\Mailer\TransportRegistry $registry): void
设置用于创建和使用传输实例的传输注册表实例。
还可以注入新的注册表实例。
参数
-
Cake\Mailer\TransportRegistry$registry 可注入的注册表对象。
返回
void