rework structure
added Router added .htaccess removed API-Module => is not used renamed batch to CRON
This commit is contained in:
parent
ccf2f506f0
commit
c33bb4cb3a
37 changed files with 680 additions and 190 deletions
|
|
@ -4,6 +4,14 @@
|
|||
namespace Venom;
|
||||
|
||||
|
||||
use Venom\Core\ArgumentHandler;
|
||||
use Venom\Core\Config;
|
||||
use Venom\Core\Module;
|
||||
use Venom\Core\Registry;
|
||||
use Venom\Exceptions\ExceptionHandler;
|
||||
use Venom\Helper\ErrorHandler;
|
||||
use Venom\Helper\URLHelper;
|
||||
use Venom\Routing\Router;
|
||||
use Venom\Views\Asset;
|
||||
use Venom\Views\RenderController;
|
||||
use Venom\Views\VenomRenderer;
|
||||
|
|
@ -13,9 +21,11 @@ class Venom
|
|||
private VenomRenderer $renderer;
|
||||
private array $controllers = [];
|
||||
private array $modules = [];
|
||||
private array $routers = [];
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
ExceptionHandler::setExceptionHandler();
|
||||
$this->renderer = new VenomRenderer($this);
|
||||
Asset::get()->setRenderer($this->renderer);
|
||||
}
|
||||
|
|
@ -24,17 +34,40 @@ class Venom
|
|||
{
|
||||
// we need to load the current controller and the current start template.
|
||||
// after this we can start the renderer
|
||||
if (Config::getInstance()->isRouterEnabled()) {
|
||||
$status = $this->useRouter();
|
||||
if ($status['found']) {
|
||||
if ($status['status']) {
|
||||
exit(0);
|
||||
}
|
||||
ErrorHandler::setFatalError();
|
||||
}
|
||||
}
|
||||
$registry = Registry::getInstance();
|
||||
$registry->getSeo()->loadSite();
|
||||
$registry->getLang()->initLang();
|
||||
$registry->getSeo()->loadSite();
|
||||
$this->renderer->init($this->findController());
|
||||
$this->renderer->render();
|
||||
}
|
||||
|
||||
private function useRouter(): array
|
||||
{
|
||||
$url = URLHelper::getInstance()->getUrl();
|
||||
/** @var Router $router */
|
||||
foreach ($this->routers as $router) {
|
||||
$route = $router->findRoute($url, $_SERVER['REQUEST_METHOD']);
|
||||
$status = $router->tryFunctionCall($route);
|
||||
if ($route !== null) {
|
||||
return ['found' => true, 'status' => $status];
|
||||
}
|
||||
}
|
||||
return ['found' => false, 'status' => true];
|
||||
}
|
||||
|
||||
private function findController(): ?RenderController
|
||||
{
|
||||
$cl = ArgumentHandler::get()->getItem('cl');
|
||||
if ($cl != null && isset($this->controllers[$cl])) {
|
||||
if ($cl !== null && isset($this->controllers[$cl])) {
|
||||
return $this->controllers[$cl];
|
||||
}
|
||||
return null;
|
||||
|
|
@ -60,8 +93,8 @@ class Venom
|
|||
}
|
||||
}
|
||||
|
||||
private function prepare()
|
||||
public function addRouter(string $name, Router $router): void
|
||||
{
|
||||
|
||||
$this->routers[$name] = $router;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue