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

eliashaeussler / cache-warmup / 8011103897

22 Feb 2024 09:17PM UTC coverage: 76.466% (-21.2%) from 97.674%
8011103897

Pull #333

github

web-flow
Merge ca3e396ce into 0442a6074
Pull Request #333: [FEATURE] Introduce Config API

44 of 355 new or added lines in 15 files covered. (12.39%)

6 existing lines in 1 file now uncovered.

1095 of 1432 relevant lines covered (76.47%)

6.73 hits per line

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

0.0
/src/Config/Adapter/PhpConfigAdapter.php
1
<?php
2

3
declare(strict_types=1);
4

5
/*
6
 * This file is part of the Composer package "eliashaeussler/cache-warmup".
7
 *
8
 * Copyright (C) 2020-2024 Elias Häußler <elias@haeussler.dev>
9
 *
10
 * This program is free software: you can redistribute it and/or modify
11
 * it under the terms of the GNU General Public License as published by
12
 * the Free Software Foundation, either version 3 of the License, or
13
 * (at your option) any later version.
14
 *
15
 * This program is distributed in the hope that it will be useful,
16
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
 * GNU General Public License for more details.
19
 *
20
 * You should have received a copy of the GNU General Public License
21
 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22
 */
23

24
namespace EliasHaeussler\CacheWarmup\Config\Adapter;
25

26
use EliasHaeussler\CacheWarmup\Config;
27
use EliasHaeussler\CacheWarmup\Exception;
28

29
use function file_exists;
30
use function is_callable;
31

32
/**
33
 * PhpConfigAdapter.
34
 *
35
 * @author Elias Häußler <elias@haeussler.dev>
36
 * @license GPL-3.0-or-later
37
 */
38
final class PhpConfigAdapter implements ConfigAdapter
39
{
NEW
40
    public function __construct(
×
41
        private readonly string $file,
NEW
42
    ) {}
×
43

44
    /**
45
     * @throws Exception\MissingConfigFileException
46
     * @throws Exception\UnsupportedConfigFileException
47
     */
NEW
48
    public function get(): Config\CacheWarmupConfig
×
49
    {
NEW
50
        if (!file_exists($this->file)) {
×
NEW
51
            throw Exception\MissingConfigFileException::create($this->file);
×
52
        }
53

NEW
54
        $closure = require $this->file;
×
55

NEW
56
        if (!is_callable($closure)) {
×
NEW
57
            throw Exception\UnsupportedConfigFileException::create($this->file);
×
58
        }
59

NEW
60
        $config = new Config\CacheWarmupConfig();
×
NEW
61
        $closure($config);
×
62

NEW
63
        return $config;
×
64
    }
65
}
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

© 2025 Coveralls, Inc