Php 如何在micro phalcon应用程序中设置服务DI的DI?当使用服务设置DI不起作用时,如何处理该应用程序?

Php 如何在micro phalcon应用程序中设置服务DI的DI?当使用服务设置DI不起作用时,如何处理该应用程序?,php,phalcon,Php,Phalcon,如何在micro phalcon应用程序中设置服务DI的DI?当使用服务设置DI不起作用时,如何处理该应用程序 use Phalcon\Mvc\Micro; use Phalcon\DI\FactoryDefault; use Commonapi\App\Library\ApiServices as ApiServices; class Bootstrap { public function run($opt){ $app = new

如何在micro phalcon应用程序中设置服务DI的DI?当使用服务设置DI不起作用时,如何处理该应用程序

    use Phalcon\Mvc\Micro;
    use Phalcon\DI\FactoryDefault; 
    use Commonapi\App\Library\ApiServices as ApiServices;
    class Bootstrap
    {
     public function run($opt){
     $app = new Micro();
     foreach ($loaders as $service) {
         $function = 'init' . ucfirst($service);
         $this->{$function}($app);
     }
     $services = new ApiServices($this->di);
     $app->setDI($services->di);
     return $app->handle();
 }

//have loaded config,routes,loader by separate functions

为什么要将
$app
传递给
$function
?什么不起作用?有什么错误吗?也许你可以这样做:

foreach ($loaders as $service) {
    $function = 'init' . ucfirst($service);
    $this->{$function}();
}
$services = new ApiServices($this->di);
$app = new Micro($services->di);
return $app->handle();

另外,micro phalcon路由中的ApiServices究竟是什么?

需要是pass controller object,才能装载micro object.。因为该应用程序已通过。$this->di['curl']=function(){return new curl();};我为api服务中的类创建了di必须在加载程序之前创建Cro对象,因为它需要传递到路由为什么需要传递到路由?这在文档中的什么位置?控制器中不需要$app。控制器扩展了可注入性,所以您可以访问其中的任何服务。哦,对了,你的意思是
$app->mount
,好吧,但当前的设置有什么不起作用?您还可以在其中定义
$loaders