Използвайте услугата extbase в кука sr_feuser_register

Имам кука, която се извиква успешно

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

Как да го инжектирам в моята кука или да го прекарам през обектната фабрика? Опитах няколко неща и търсих в гугъл много, но не успях да разбера.


person Gonfi den Tschal    schedule 23.04.2014    source източник
comment
Публикувайте направените опити и съобщенията за грешки.   -  person lorenz    schedule 25.04.2014


Отговори (1)


Предлагам ви да получите екземпляр на мениджъра на обекти 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');
        }
    }
person Daniel    schedule 30.04.2014