/** * @param Registry $registry * @return Router */ public static function getInstance($registry) { if (Router::$router == null) { Router::$router = new Router($registry); } return Router::$router; }
<?php require_once '../app/bootstrap.php'; use Framework\Application; use Framework\Core\Router; use Framework\Core\Route; use Framework\Core\Response; use Framework\Core\View; use Exception; $router = new Router(); $router->addRoute(new Route('get', '/posts', 'PostController@posts')); $router->addRoute(new Route('get', '/posts/post/{id}', 'PostController@show')); $router->addRoute(new Route('post', '/posts/post', 'PostController@add')); $router->addRoute(new Route('get', '/index', 'MainController@index')); $router->addRoute(new Route('get', '/', 'MainController@index')); $router->addRoute(new Route('get', '/counter', 'CountController@count')); $response = Application::run($router); Application::handleResponse($response);
public static function run(Router $router) { self::loadConfig(); return Dispatcher::run($router->checkRoute(new Request())); }
use framework\core\Response; use framework\core\Router; use framework\core\Request; use framework\core\view\Template; use framework\core\log\Logger; use framework\core\ConfigManager; define('ROOT', $_SERVER['DOCUMENT_ROOT']); require_once ROOT . "/framework/core/loader.php"; spl_autoload_register(array("framework\\core\\Loader", "loadClass")); $registry = new Registry(); $db = new PDO(ConfigManager::getConfig("db")); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $registry["db"] = $db; $logger = new Logger(ROOT . ConfigManager::getConfig("log_file")); $registry["logger"] = $logger; $router = Router::getInstance($registry); if (isWebFileRequested() > 0) { readfile(ROOT . $_SERVER['REQUEST_URI']); } else { $urlParts = explode('?', $_SERVER['REQUEST_URI'], 2); $request = new Request($urlParts[0]); $request->setParams($_REQUEST); $response = new Response(); $controllerData = $router->getController($request->getUrl()); $controller = $controllerData["controller"]; if ($controller != "index") { $action = $controllerData["action"]; $view = $controller->{$action}($request, $response); if ($response->getPath() == "") { $response->setPath(ROOT . "/src/Students/view"); }