2014-04-23 23 views
0

我有一个是被称为成功使用extbase服务

class tx_srfeuserregister_MyHooksHandler { 
    public function registrationProcess_afterSaveCreate ($recordArray, &$invokingObj) { 
    var_dump($recordArray); //i get here 
    } 
} 

由于被注册到sr_feuser_register/ext_localconf.php

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['sr_feuser_register']['tx_srfeuserregister_pi1']['registrationProcess'][] = 'EXT:sr_feuser_register/hooks/class.tx_srfeuserregister_MyHooksHandler.php:&tx_srfeuserregister_MyHooksHandler'; 

在这里做的有益的事情,并没有挂钩复制/粘贴代码,我想从位于另一个分机的extbase服务调用服务方法

typo3conf/ext/my_extension/Classes/Domain/Service /Tx_MyExtension_Domain_Service_EntityFactory.php

如何将其注入到我的钩子中,或者通过对象工厂?我尝试了一些东西并搜索了很多,但无法弄清楚。

+0

发布您所做的尝试和错误消息。 – lorenz

回答

0

我建议你得到一个extbase对象管理器的实例,获取你的服务并调用你的方法。类似这样的:

/** 
    * @var Tx_Extbase_Object_ObjectManager 
    */ 
    protected $objectManager; 

    /** 
    * @var Tx_MyExt_Service_MyService 
    */ 
    protected $myService; 

    public function registrationProcess_afterSaveCreate ($recordArray, &$invokingObj) { 
     $this->initializeObjects(); 
     // Now you can use your Service. 
     $this->myService->myMethod($recordArray); 
    } 

    /** 
    * @return void 
    */ 
    public function initializeObjects() { 
     if (empty($this->objectManager)) { 
      $this->objectManager = t3lib_div::makeInstance('Tx_Extbase_Object_ObjectManager'); 
     } 
     if (empty($this->myService)) { 
      $this->myService = $this->objectManager->get('Tx_MyExt_Service_MyService'); 
     } 
    }