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