spacetab-io / db-config
从数组创建DSN字符串。支持连接URI和连接键值字符串。
1.0.0
2020-05-05 11:02 UTC
Requires
- php: >=7.4
Requires (Dev)
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^9
- symfony/var-dumper: ^5
This package is auto-updated.
Last update: 2024-09-05 20:05:31 UTC
README
从数组创建DSN字符串。支持连接URI和连接键值字符串。
安装
composer require spacetab-io/db-config
规范
db: default: # <-- connection name type: pgsql name: string host: string|array port: int|array pass: string schema: string options: array<string, mixed> mysql: # <-- connection name type: mysql name: string host: string|array port: int|array pass: string options: array<string, mixed>
注意:所有参数都是可选的。默认情况下,使用 default
连接和 pgsql
数据库类型 (postgres@127.0.0.1:5432/postgres
)。
示例
<?php use Spacetab\DbConfig\Packer\KeyValue; use Spacetab\DbConfig\Reader; $config = new Reader([ 'default' => [ 'type' => 'pgsql', 'name' => 'roquie', 'host' => ['127.0.0.1', '127.0.0.2'], 'port' => [5432, 6432], 'user' => 'roquie', 'pass' => 'secret', 'schema' => 'public', 'options' => [ 'connect_timeout' => 10, 'target_session_attrs' => 'any', 'sslmode' => 'require', ], ] ]); $config->addPacker('pgsql', new KeyValue\Postgres()); $config->getConnectionString($connectionName = 'default'); # host=127.0.0.1,127.0.0.2 port=5432,6432 user=roquie password=secret dbname=roquie schema=roquie connect_timeout=10 target_session_attrs=any sslmode=require
注意:Amphp连接字符串对mysql和postgres客户端不支持多主机连接(2020年5月5日)。
依赖
- >= PHP 7.4
- 使用Composer安装包
许可
MIT许可
版权 © 2020 spacetab.io,Inc. https://spacetab.io
特此授予任何获得此软件及其相关文档副本(“软件”)的人免费使用该软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许软件的受让人进行此类操作,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是基于合同、侵权或其他方式,是否与软件或软件的使用或其他交易有关。