Issues (10)

config/di/router.php (1 issue)

1
<?php
2
/**
3
 * Configuration file to create router as $di service.
4
 */
5
return [
6
    "services" => [
7
        "router" => [
8
            "shared" => true,
9
            "callback" => function () {
10
                $router = new \Anax\Route\Router();
11
                $router->setDI($this);
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $this seems to be never defined.
Loading history...
12
13
                // Load the configuration files
14
                $cfg = $this->get("configuration");
15
                $config = $cfg->load("router");
16
17
                // Set DEVELOPMENT/PRODUCTION mode, if defined
18
                $mode = $config["config"]["mode"] ?? null;
19
                if (isset($mode)) {
20
                    $router->setMode($mode);
21
                } else if (defined("ANAX_PRODUCTION")) {
22
                    $router->setMode(\Anax\Route\Router::PRODUCTION);
23
                }
24
25
                // Add routes from configuration file
26
                try {
27
                    $file = $config["file"] ?? null;
28
                    $router->addRoutes($config["config"] ?? []);
29
                    foreach ($config["items"] ?? [] as $routes) {
30
                        $file = $routes["file"];
31
                        $router->addRoutes($routes["config"]);
32
                    }
33
                } catch (Exception $e) {
34
                    throw new Exception(
35
                        "Configuration file: '$file'. "
36
                        . $e->getMessage()
37
                    );
38
                }
39
40
                return $router;
41
            }
42
        ],
43
    ],
44
];
45