Issues (10)

config/di/callurlmodel.php (1 issue)

1
<?php
2
/**
3
 * Configuration file for DI container.
4
 */
5
return [
6
7
    // Services to add to the container.
8
    "services" => [
9
        "callurlmodel" => [
10
            "shared" => true,
11
            "callback" => function () {
12
                $curlModel = new \Erjh17\CallUrlModel\CallUrlModel();
13
                $curlModel->setDI($this);
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $this seems to be never defined.
Loading history...
14
15
                // Load the configuration files
16
                $cfg = $this->get("configuration");
17
                $config = $cfg->load("callurlmodel.php");
18
                $file = $config["file"] ?? null;
19
                $config = $config["config"] ?? null;
20
21
                $ipstackurl = $config["ipstackurl"] ?? null;
22
                $darkskyurl = $config["darkskyurl"] ?? null;
23
                $opencageurl = $config["opencageurl"] ?? null;
24
25
26
                $ipstackkey = $config["ipstackkey"] ?? null;
27
                $darkskykey = $config["darkskykey"] ?? null;
28
                $opencagekey = $config["opencagekey"] ?? null;
29
30
                if (!$ipstackkey) {
31
                    throw new Exception("Configuration file '$file': Missing api key for Ip Stack.");
32
                } elseif (!$darkskykey) {
33
                    throw new Exception("Configuration file '$file': Missing api key for Dark Sky.");
34
                } elseif (!$opencagekey) {
35
                    throw new Exception("Configuration file '$file': Missing api key for Opencage.");
36
                }
37
38
                if (!$ipstackurl) {
39
                    throw new Exception("Configuration file '$file': Missing api url for Ip Stack.");
40
                } elseif (!$darkskyurl) {
41
                    throw new Exception("Configuration file '$file': Missing api url for Dark Sky.");
42
                } elseif (!$opencageurl) {
43
                    throw new Exception("Configuration file '$file': Missing api url for Opencage.");
44
                }
45
46
                $curlModel->setIpstackKey($ipstackkey);
47
                $curlModel->setDarkskyKey($darkskykey);
48
                $curlModel->setOpencageKey($opencagekey);
49
50
                $curlModel->setIpstackUrl($ipstackurl);
51
                $curlModel->setDarkskyUrl($darkskyurl);
52
                $curlModel->setOpenCageUrl($opencageurl);
53
54
                return $curlModel;
55
            }
56
        ],
57
    ],
58
];
59