58 lines
1.3 KiB
PHP
58 lines
1.3 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(null);
|
|
$this->renderer->render();
|
|
}
|
|
|
|
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()
|
|
{
|
|
|
|
}
|
|
|
|
private function findController()
|
|
{
|
|
|
|
}
|
|
} |