return $url; }, true); $di->set('dispatcher', function ($di) { $dispatcher = new Dispatcher($di); return $dispatcher; }, true); $di->set('router', function ($di) { $router = new Router(); //$router->setSourceMode(Router::SOURCE_MODE_SERVER_REQUEST_URI); $router->setDi($di); $router->setDefaultNamespace('MyApp\\Controllers'); return $router; }, true); $di->set('view', function ($di) { $view = new View(); $view->setDi($di); $view->setBasePath('../src/'); $view->setViewsDir('app/views/'); return $view; }, true); $di->set('modelsManager', function ($di) { $manager = new ModelsManager(); $manager->setDi($di); return $manager; }, true); Model::setup(array('di' => $di)); $di->router->add('/blog/{year}/{month}/{title}', array('controller' => 'index', 'action' => 'show', 'params' => array('year' => 1, 'month' => 2, 'title' => 3)))->setName('show-posts'); $di->router->handle(); $di->dispatcher->setNamespaceName($di->router->getNamespaceName()); $di->dispatcher->setControllerName($di->router->getControllerName()); $di->dispatcher->setActionName($di->router->getActionName());