[TYPO3-mvc] Fluid performance patch backport to 4.5?!

Christian Kuhn lolli at schwarzbu.ch
Wed Mar 7 22:05:50 CET 2012


Hey.

On 03/06/2012 06:40 PM, Bastian Waidelich wrote:
>> - It has a nasty breaking change (this->argument() is not an object
>> anymore in view helpers) that is hard to get rid off.
>
> It should be possible to (re-)introduce a proxy object for compatibility
> reasons. It could implement ArrayAccess and forward methods like
> "hasArgument()" to the ViewHelper (possibly with a deprecation log entry).

Yeah, I thought about that as well. While it sounds easy, it is no 
no-brainer. I'd expect at least a day or something to do it, with my 
current lack of deep-fluid-parsing knowhow and only a rough 
understanding of the performance patch itself probably more. I managed 
to get the unit tests up and running again, so there would be at least a 
starting point.


>> - The patch is highly intrusive: It changes interfaces, removes files,
>> shifts lots of code around. Extensions that extend extbase / fluid core
>> parts will likely break.
>
> It shouldn't change the API (apart from the argument thing) and we
> haven't received feedback about breaking code.. But, sure, chances are..

Well, eg. the boolean comparison logic (f:if condition="...") is moved 
to other classes. This breaks for example our library extension that 
extends the main regex (we allow direct string comparisons ;) ... While 
this is ok from a hacker point of view, and we always communicate that 
any 'xclass'-alike thing you do in extensions may always break, I'd 
still expect a nifty discussion if we do such big class changes during 
minor version upgrades in LTS core.


>> - It only works best together with other core patches, especially in the
>> caching framework part, we also do not want to back port them.
>
> Really? I thought that regarding the Caching Framework nothing really
> changed inside the core of Fluid!?

Getting the code running in 4.5 is straight forward (cache instantiation 
is a bit more complex in 4.5 and was simplified in 4.6). But the 4.5 
caching framework does not clear _all_ caches, if clicking 'clear all 
cache' (it clears only those, that are instantiated during the according 
eid call). This was also solved in 4.6. So, while this is again not a 
real blocker, it is also not a nice thing if you cannot clear the 
compiled view the usual way.


> Thanks again for your work, I hope it wasn't too frustrating ;)

Well, it was mind juggling (the code is hard stuff) and not boring at 
all. Just our PM is not happy with the conclusion ;)


Regards
Christian


More information about the TYPO3-project-typo3v4mvc mailing list