venom/src/Venom/Venom.php

61 lines
1.5 KiB
PHP

<?php
namespace Venom;
use Venom\Views\RenderController;
use Venom\Views\VenomRenderer;
class Venom
{
private VenomRenderer $renderer;
private array $controllers = [];
private array $modules = [];
public function __construct()
{
$this->renderer = new VenomRenderer($this);
}
public function run(): void
{
// we need to load the current controller and the current start template.
// after this we can start the renderer
$this->renderer->init($this->findController());
$this->renderer->render();
}
private function findController(): ?RenderController
{
if (isset($_GET['cl'], $this->controllers[$_GET['cl']])) {
return $this->controllers[$_GET['cl']];
}
return null;
}
public function initModules(array $modules): void
{
foreach ($modules as $key => $moduleClass) {
$module = new $moduleClass;
if ($module instanceof Module && $module->register()) {
$this->modules[$key] = $module;
}
}
}
public function initControllers(array $controllers): void
{
foreach ($controllers as $key => $controllerClass) {
$controller = new $controllerClass;
if ($controller instanceof RenderController && $controller->register()) {
$this->controllers[$key] = $controller;
}
}
}
private function prepare()
{
}
}