其中phalcon也使用了依赖注入,而且phalcon在启动的过程中,需要使用很多的类,这些类都是通过依赖注入来进行配置的,然后通过加载器来载入的,下面介绍一下对于经常需要注入的服务。
对于路由器router,它负责解析url参数,该类文件是 \Phalcon\Mvc\Router,它的add参数类配置一个路由,下面是一个添加的范例:
$di->set('router', function () {
$router = new \Phalcon\Mvc\Router();
$router->add("/:module/:controller/:action/:params", array(
'module' => 1,
'controller' => 2,
'action' => 3,
'params' => 4,
));
$router->setDefaultModule("entrance");
$router->setDefaultController("index");
$router->setDefaultAction("index");
$router->notFound(
array(
"module" => "entrance",
"controller" => "index",
"action" => "index",
)
);
return $router;
}
对于视图view,一般我们常规的配置的范例如下:
$di->set('view', function () {
$view = new \Phalcon\Mvc\View();
$view->setBasePath('./entrance/');
$view->setViewsDir('./views/');
$view->registerEngines(array(
'.volt' => 'Phalcon\Mvc\View\Engine\Volt',
".phtml" => 'Phalcon\Mvc\View\Engine\Php',
));
return $view;
});
对于url,我们需要加上,它的主要目的是避免跳转的时候出问题,常规配置:
$di->set('url', function () {
$url = new Phalcon\Mvc\Url();
$url->setBaseUri('/star/');
return $url;
});
对于session,也给一个范例吧:
$di->setShared('session', function () {
$session = new Phalcon\Session\Adapter\Files();
$session->start();
return $session;
});