summaryrefslogtreecommitdiff
path: root/src/ERPHP.php
blob: b6883610de42cd07132aeee04cc91df996320bbe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php

namespace ERPHP;

use ERPHP\Router\Router;

class ERPHP
{
  public function run(): void
  {
    // start session
    session_start();

    // load config
    Config::load();

    // load plugins
    $this->loadPlugins();

    // load routes
    Hook::addFilter("Router::getRouteFiles", function (array $routeFiles) {
      $routeFiles[] = __DIR__ . "/routes.php";
      return $routeFiles;
    });

    Router::getInstance()->run();
  }

  private function loadPlugins(): void
  {
    $pluginsDirectory = Config::get("plugins_directory", dirname(__DIR__) . "/plugins");
    $pluginDirectories = scandir($pluginsDirectory);

    foreach ($pluginDirectories as $directory) {
      if ($directory === "." || $directory === "..") {
        continue;
      }

      $composerConfig = file_get_contents("$pluginsDirectory/$directory/composer.json");
      include_once "$pluginsDirectory/$directory/index.php";
    }
  }
}