其中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;
- });