Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
App
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace Cosray\Config;
6
7use DateTimeZone;
8
9final class App
10{
11    private ?DateTimeZone $timezoneCache = null;
12
13    public function __construct(
14        private readonly \Cosray\Config $config,
15    ) {}
16
17    /** @var non-empty-string */
18    public string $name {
19        get => $this->config->get('app.name');
20    }
21
22    public bool $debug {
23        get => $this->config->get('app.debug');
24    }
25
26    public string $env {
27        get => $this->config->get('app.env');
28    }
29
30    public DateTimeZone $timezone {
31        get => $this->timezoneCache ??= new DateTimeZone($this->config->get('app.timezone'));
32    }
33
34    /** @var ?non-empty-string */
35    public ?string $secret {
36        get => $this->config->get('app.secret');
37    }
38}