[TYPO3-core] Signals vs. Hooks

Markus Klein klein.t3 at reelworx.at
Mon Aug 25 15:34:16 CEST 2014

Hi Bernhard,

we recently discussed and clarified that, but I guess that was on slack.

The signal/slot pattern is meant for one-way (asynchronous) communication, hence the signaled component has no possibility to modify or influence the behavior of the signaling component. 
This pattern is, unfortunately, violated by the current Core implementation - it is easily possible to do so, as everything in PHP runs synchronously - since our implementation does allow manipulations. Therefore it is nothing else but another variation of our traditional hooks.

My suggestion - albeit being a breaking one - is therefore: Dump the concept of signals as PHP is inherently non-parallel.
Rename the current signal/slot implementation to "<some new hooking mechanism>", migrate all existing hooks to this mechanism.
The new hook mechanism shall be based on Interfaces and shall allow data manipulation (preferably via data objects).

Kind regards

Markus Klein
TYPO3 CMS Active Contributors Team Member

> -----Original Message-----
> From: typo3-team-core-bounces at lists.typo3.org [mailto:typo3-team-core-
> bounces at lists.typo3.org] On Behalf Of Bernhard Kraft
> Sent: Monday, August 25, 2014 2:14 PM
> To: typo3-team-core at lists.typo3.org
> Subject: Re: [TYPO3-core] Signals vs. Hooks
> Hi,
> On 2014-08-24 21:10, Philipp Gampe wrote:
>  > However it does not solve to
> > problem of allowing multiple observers for the same step.
> Currently I didn't want to focus on the single/multiple aspect but ratheron
> the difference between observer and template pattern.
> How would you (or anyone else) describe the major differences between
> hooks and the signal/slots? Would you call both an observer?
> In fact the data return mechanism of signal/slots isn't very prominent and
> there should be a better solution.
> If I find some time later on I will try to make a working-code proposal.
> Currently my time is rather sparse ...
> cu,
> Bernhard
> _______________________________________________
> Before posting to this list, please have a look to the posting rules
> on the following websites:
> http://typo3.org/teams/core/core-mailinglist-rules/
> http://typo3.org/development/bug-fixing/diff-and-patch/
> _______________________________________________
> TYPO3-team-core mailing list
> TYPO3-team-core at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-team-core

More information about the TYPO3-team-core mailing list