Problem jest w załadowaniu metody statycznej ładującej szablon (klasy dispatcher) - _loadTemplate()
Treść błędu: "Fatal error: Call to undefined method base::_loadTemplate() in ..."
Nie wiem, co jest tego powodem bo odwołanie do niej jest prawidłowe (tj. base::_loadTemplate($controller, $template, $viewvars, $uselayout)

Podejrzewałem że mam namieszane w httpd.conf, z obsługą mod_rewrite lub z php.ini ale chyba wszystko tam gra ...
httpd.conf
<Directory /> Options FollowSymLinks AllowOverride All Order deny,allow Deny from all Satisfy all </Directory>
.htaccess
RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?$1
index.php
<?php /* * index.php * Jest to plik rozruchowy */ include ("core/ini.php"); initializer::initialize(); /* obiekt o nazwie loader - on ma wczytać obiekty * za pomocą wzorca Singletone (żeby zmniejszyć obciążenie systemu */ $router = loader::load("router"); dispatcher::dispatch($router); ?>
core/main/router.php
<?php /** * * Zadaniem router'a jest odszukanie kontrolera, akcji i parametrów w żądaniu URL * */ class router { private $route; private $controller; private $action; private $params; public function __construct() { { require_once("app/config/routes.php"); } $config = loader::load("config"); { $default_controller = $config->default_controller; // w configs.php jest odwołanie $path[0] = $default_controller; else $path[0] = "index"; } $route = $path[0]; $sanitzing_pattern = $config->allowed_url_chars; // w configs.php jest odwołanie $this->route = $route; $this->controller = $routeParts[0]; $this->params = $routeParts; // Dopasowanie wzorca routingu zdefiniowanego przez użytkownika { foreach($routes as $_route) { $_pattern = "~{$_route[0]}~"; $_destination = $_route[1]; { $this->controller = $newrouteparts[0]; $this->action = $newrouteparts[1]; } } } } public function getAction() { return $this->action; } public function getController() { return $this->controller; } public function getParams() { return $this->params; } } ?>
core/main/dispatcher.php
<?php /** * Klasa dispatcher * * Głównym zadaniem tej klasy jest pobranie obiektu router'a jako parametru * a następnie odszukanie kontrolera, akcji i parametrów z router'a * Jeżeli plik kontrolera będzie dostępny to zostanie wczytany i nastąpi * inicjalizacja kotrolera. Po zakończeniu inicjalizacji zostanie wykonana akcja * */ class dispatcher { { $config = loader::load("config"); // configs.php - odwołanie // poniżej ważna część kodu $controller = $router->getController(); $action = $router->getAction(); $params = $router->getParams(); { '1' == $_POST['unittest']) unittest::setUp(); } $controllerfile = "app/controllers/{$controller}.php"; { require_once($controllerfile); $app = new $controller; $app->use_layout = true; $app->$action; unittest::tearDown(); /************************** * Zarządzanie widokiem * **************************/ $view = loader::load("view"); $viewvars = $view->getVars($app); $uselayout = $config->use_layout; if(!$app->use_layout) $uselayout=false; $template = $view->getTemplate($action); base::_loadTemplate($controller, $template, $viewvars, $uselayout); echo "<p>Całkowity czas rozdzielenia:" } else throw new Exception("Kontroller nie został znaleziony"); } /** * TEJ METODY STATYCZNEJ NIE MOŻE ZNALEŹĆ[/b] * */ { if($uselayout) $templatefile = "app/views/{$controller}/{$template}.php"; { include_once($templatefile); } else { throw new Exception("Widok '{$template}.php' nie został znaleziony w katalogu views/{$controller}."); } if($uselayout) { $layoutfilelocal = "app/views/{$controller}.php"; $layoutfileglobal = "app/views/layouts/{$controller}.php"; include_once($layoutfilelocal); else include_once($layoutfileglobal); } } } ?>