Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
ConnectionSetting
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace PeServer\Core\Database;
6
7use PeServer\Core\Text;
8
9/**
10 * DB接続情報。
11 */
12readonly class ConnectionSetting
13{
14    #region variable
15
16    /**
17     * ドライバ。
18     * @var string
19     */
20    public string $driver;
21    /**
22     * データソースからドライバを省いた文字列。
23     * @var string
24     */
25    public string $source;
26
27    #endregion
28
29    /**
30     * 生成。
31     *
32     * @param string $dsn データソース名。
33     * @param string $user ユーザー名。
34     * @param string $password パスワード。
35     * @param array<string,string|int>|null $options オプション。
36     */
37    public function __construct(
38        public string $dsn,
39        public string $user,
40        public string $password,
41        public ?array $options = null
42    ) {
43        $values = Text::split($dsn, ':', 2);
44        if (count($values) === 2) {
45            $this->driver = $values[0];
46            $this->source = $values[1];
47        } else {
48            $this->driver = '';
49            $this->source = '';
50        }
51    }
52}