小编Sen*_*reT的帖子

TYPO3 Extbase - 如何使用核心信号/插槽

我在TYPO3 V6.2中有一个可用的Extbase扩展,它存储了产品.现在我想学习使用Signal/Slot(Hooks的Extbase变体).我想知道为什么这个例子不起作用.当我在TYPO3后端的列表模块中更新产品时,它会正确保存,但不会显示任何消息.

文件typo3conf/ext/myext/ext_localconf.php

$signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance( 'TYPO3\\CMS\\Extbase\\SignalSlot\\Dispatcher' );
$signalSlotDispatcher->connect(
    'TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Backend',
    'afterUpdateObject',
    'MyVendor\\MyExt\\Service\\Signalservice',    
    'myAfterUpdate',
    FALSE
);
Run Code Online (Sandbox Code Playgroud)

文件typo3conf/ext/myext/Service/Signalservice.php

namespace MyVendor\MyExt\Service;

class Signalservice implements \TYPO3\CMS\Core\SingletonInterface {

    /**
     * @param  \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object
     */
    public function myAfterUpdate(\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object){

            if ($object instanceof \MyVendor\MyExt\Domain\Model\Products) {

                // check if we come to this point 
                \TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump('Successfully hooked - I am a slot.');
                die();

            }   

    }

}
Run Code Online (Sandbox Code Playgroud)


更新15.06.2015
Patrick Lobacher的一个提示说,我们不能在这种情况下使用die().相反,我们应该编写一个日志文件.但这对我也不起作用.没有写入文件:

文件typo3conf/ext/myext/ext_localconf.php

/** 
 * @var \TYPO3\CMS\Extbase\SignalSlot\Dispatcher $signalSlotDispatcher 
 * */
$signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('TYPO3\\CMS\\Extbase\\SignalSlot\\Dispatcher');
$signalSlotDispatcher->connect(
   'TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Backend',
   'afterUpdateObject',
   function ($payload) { …
Run Code Online (Sandbox Code Playgroud)

signals-slots extbase typo3-6.2.x

6
推荐指数
1
解决办法
2327
查看次数

标签 统计

extbase ×1

signals-slots ×1

typo3-6.2.x ×1