Symfony2 @ Assert \ Gültig: traverse Vs deep

8

Ich habe eine einfache Form, die sehr lange dauert:

%Vor%

Nach der Installation von xhproof und der Untersuchung des Problems habe ich festgestellt, dass die Validierung viel Zeit in Anspruch nimmt.

%Vor%

Symfony2's Dokumentation über gültige Annotation ist nicht sehr klar:

  

traverse

     

Geben Sie Folgendes ein: boolean Standard: true

     

Wenn diese Einschränkung auf eine Eigenschaft angewendet wird, die ein Array von enthält   Objekte, dann wird jedes Objekt in diesem Array nur dann validiert, wenn dies der Fall ist   Option wird auf "True" gesetzt.

     

deep

     

Geben Sie Folgendes ein: boolean Standard: false

     

Wenn diese Einschränkung auf eine Eigenschaft angewendet wird, die ein Array von enthält   Objekte, dann wird jedes Objekt in diesem Array rekursiv validiert   Wenn diese Option auf "True" gesetzt ist.

Quelle: Ссылка

Meine Frage ist: Was ist der Unterschied zwischen den beiden Optionen und welche Werte garantieren mir eine bessere Leistung?

    
zizoujab 21.04.2015, 14:53
quelle

1 Antwort

3

Ссылка

Wenn Sie den Standardwert belassen, verwenden Sie traverse link Bedecken Sie alle Objekte innerhalb des verschachtelten Arrays und ignorieren Sie alle Arrays von Objekten, die es innerhalb dieses übergeordneten Objekts sieht, dh überspringt die Validierung für sie. Es muss auch nach allem suchen, was eine Instanz von \Traversable

ist

verwendet deep den Link , um in diesen Objekten nach einer verschachtelten Auflistung zu suchen. Es könnte sogar die Validierung für diejenigen überspringen, die diese Kriterien nicht erfüllen, wie Art eines Filters also sei vorsichtig damit.

Andernfalls, wenn Sie einen Unterschied in der Leistung sehen, ist entweder die traverse schlecht programmiert oder die Suche nach Instanzen von Traversable ist schwer zu treffen.

Wenn Sie kein Traversable benötigen, sollten Sie in Ihrem Fall nur deep verwenden, da es schneller ist, aber stellen Sie sicher, dass Ihre Ergebnisse nicht abgeschnitten werden.

    
blamb 21.04.2015, 20:15
quelle

Tags und Links