signalSlotDispatcher = $signalSlotDispatcher; } /** * Initialize arguments */ public function initializeArguments() { parent::initializeArguments(); $this->registerArgument('extension', 'string', '', true); } /** * Processes the list of actions. * * @return string the rendered list of actions */ public function render() { $extension = $this->arguments['extension']; $html = $this->renderChildren(); $actions = preg_split('#\\n\\s*#s', trim($html)); $actions = $this->emitProcessActionsSignal($extension, $actions); return implode(' ', $actions); } /** * Emits a signal after the list of actions is processed * * @param string $extension * @param array $actions * @return array Modified action array */ protected function emitProcessActionsSignal($extension, array $actions) { $this->signalSlotDispatcher->dispatch( __CLASS__, static::SIGNAL_ProcessActions, [ $extension, &$actions, ] ); return $actions; } }