[TYPO3-core] Extbase validation, lazy loading and performance

Nicolas de Haen typo3 at ndh-websolutions.de
Mon Nov 25 12:47:52 CET 2013

To continue this thread:

I pushed two patches [1] to gerrit which should avoid the recursive 
validation and the redundant calls. At least in my use case it reduced 
the number of queries for a complex model from 2534 to 900.

The changed behaviour of the new Extbase validation introduced with 6.2 
is described in the comment for the method
ValidatorResolver->buildBaseValidatorConjunction (which is the same as 
in Flow)

"The base validation rules are those which were declared directly in a 
class (typically a model) through some validate annotations on properties.
If a property holds a class for which a base validator exists, that 
property will be checked as well, regardless of a validate annotation"

This means that even lazy annotated class properties will be loaded from 
persistence if a validator is resolved for them (or a subproperty). I 
tested this behaviour with Flow and Extbase and could confirm it.

This happens also if a type validator is found - for example any 
property of type \DateTime will add a validator and cause a validation 
of the object regardless of a @ignorevalidation annotation in the 
calling action.

This might be performance relevant in Core extensions based on extbase.

Kind regards,


Nico de Haen
ndh websolutions

Webprogrammierung, OpenSource, Typo3


More information about the TYPO3-team-core mailing list