特质 StaticConfigTrait
一个特质,它提供了一组静态方法来管理配置,用于提供适配器外观或需要注册和操作一组配置数据的类。
实现对象应声明一个静态的 $_dsnClassMap
属性。
命名空间: Cake\Core
属性概要
-
$_config protected static
array<string|int, array<string, mixed>>
配置集。
方法概要
-
configured() public static
返回一个包含命名配置的数组
-
drop() public static
删除一个已构造的适配器。
-
getConfig() public static
读取现有的配置。
-
getConfigOrFail() public static
读取特定键的现有配置。
-
getDsnClassMap() public static
返回此类的 DSN 类映射。
-
parseDsn() public static
将 DSN 解析为有效的连接配置
-
setConfig() public static
此方法可用于为应用程序定义配置适配器。
-
setDsnClassMap() public static
更新此类的 DSN 类映射。
方法详情
drop() ¶ public static
drop(string $config): bool
删除一个已构造的适配器。
如果您希望修改现有配置,您应该删除它,更改配置,然后重新添加它。
如果实现对象支持 $_registry
对象,那么命名配置也将从注册表中卸载。
参数
-
string
$config 您希望删除的现有配置。
返回
bool
getConfig() ¶ public static
getConfig(string $key): mixed|null
读取现有的配置。
参数
-
string
$key 配置的名称。
返回
mixed|null
getConfigOrFail() ¶ public static
getConfigOrFail(string $key): mixed
读取特定键的现有配置。
此键的配置值必须存在,不能为 null。
参数
-
string
$key 配置的名称。
返回
mixed
抛出
InvalidArgumentException
如果值不存在。
getDsnClassMap() ¶ public static
getDsnClassMap(): array<string, class-string>
返回此类的 DSN 类映射。
返回
array<string, class-string>
parseDsn() ¶ 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 要应用的类映射的添加/编辑。
返回
void