spacetab-io/db-config

从数组创建DSN字符串。支持连接URI和连接键值字符串。

1.0.0 2020-05-05 11:02 UTC

This package is auto-updated.

Last update: 2024-09-05 20:05:31 UTC


README

CircleCI codecov

从数组创建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

特此授予任何获得此软件及其相关文档副本(“软件”)的人免费使用该软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许软件的受让人进行此类操作,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是基于合同、侵权或其他方式,是否与软件或软件的使用或其他交易有关。