• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ICanBoogie / bind-activerecord / 6361987837

30 Sep 2023 09:53AM UTC coverage: 31.624%. Remained the same
6361987837

push

github

olvlvl
Tidy

24 of 24 new or added lines in 2 files covered. (100.0%)

37 of 117 relevant lines covered (31.62%)

0.34 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/lib/ConfigBuilder.php
1
<?php
2

3
/*
4
 * This file is part of the ICanBoogie package.
5
 *
6
 * (c) Olivier Laviale <olivier.laviale@gmail.com>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11

12
namespace ICanBoogie\Binding\ActiveRecord;
13

14
use Closure;
15
use ICanBoogie\ActiveRecord;
16
use ICanBoogie\ActiveRecord\Config;
17
use ICanBoogie\ActiveRecord\Config\AssociationBuilder;
18
use ICanBoogie\ActiveRecord\Config\ConnectionDefinition;
19
use ICanBoogie\ActiveRecord\Model;
20
use ICanBoogie\ActiveRecord\Query;
21
use ICanBoogie\ActiveRecord\SchemaBuilder;
22
use ICanBoogie\Config\Builder;
23

24
/**
25
 * @implements Builder<Config>
26
 */
27
final class ConfigBuilder implements Builder
28
{
29
    public static function get_fragment_filename(): string
30
    {
31
        return 'activerecord';
×
32
    }
33

34
    private readonly ActiveRecord\ConfigBuilder $inner;
35

36
    public function __construct()
37
    {
38
        $this->inner = new ActiveRecord\ConfigBuilder();
×
39
    }
40

41
    public function build(): Config
42
    {
43
        return $this->inner->build();
×
44
    }
45

46
    /**
47
     * @param non-empty-string $id
48
     * @param non-empty-string $dsn
49
     * @param non-empty-string|null $username
50
     * @param non-empty-string|null $password
51
     * @param non-empty-string|null $table_name_prefix
52
     * @param non-empty-string $charset_and_collate
53
     * @param non-empty-string $time_zone
54
     *
55
     * @return $this
56
     */
57
    public function add_connection(
58
        string $id,
59
        string $dsn,
60
        string|null $username = null,
61
        string|null $password = null,
62
        string|null $table_name_prefix = null,
63
        string $charset_and_collate = ConnectionDefinition::DEFAULT_CHARSET_AND_COLLATE,
64
        string $time_zone = ConnectionDefinition::DEFAULT_TIMEZONE,
65
    ): self {
66
        $this->inner->add_connection(
×
67
            id: $id,
×
68
            dsn: $dsn,
×
69
            username: $username,
×
70
            password: $password,
×
71
            table_name_prefix: $table_name_prefix,
×
72
            charset_and_collate: $charset_and_collate,
×
73
            time_zone: $time_zone
×
74
        );
×
75

76
        return $this;
×
77
    }
78

79
    /**
80
     * @param class-string<ActiveRecord> $activerecord_class
81
     * @param class-string<Model> $model_class
82
     * @param class-string<Query> $query_class
83
     * @param non-empty-string|null $table_name
84
     * @param non-empty-string|null $alias
85
     * @param (Closure(SchemaBuilder): SchemaBuilder)|null $schema_builder
86
     * @param (Closure(AssociationBuilder): AssociationBuilder)|null $association_builder
87
     * @param non-empty-string $connection
88
     *
89
     * @return $this
90
     */
91
    public function add_model( // @phpstan-ignore-line
92
        string $activerecord_class,
93
        string $model_class = Model::class,
94
        string $query_class = Query::class,
95
        string|null $table_name = null,
96
        string|null $alias = null,
97
        Closure $schema_builder = null,
98
        Closure $association_builder = null,
99
        string $connection = Config::DEFAULT_CONNECTION_ID,
100
    ): self {
101
        $this->inner->add_model(
×
102
            activerecord_class: $activerecord_class,
×
103
            model_class: $model_class,
×
104
            query_class: $query_class,
×
105
            table_name: $table_name,
×
106
            alias: $alias,
×
107
            schema_builder: $schema_builder,
×
108
            association_builder: $association_builder,
×
109
            connection: $connection,
×
110
        );
×
111

112
        return $this;
×
113
    }
114

115
    /**
116
     * @return $this
117
     */
118
    public function use_attributes(): self
119
    {
120
        $this->inner->use_attributes();
×
121

122
        return $this;
×
123
    }
124
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc