Frage Unterschied zwischen Symfony2-Callbacks und benutzerdefinierten Validierungsbeschränkungen


Soweit ich das verstehe a Rückrufen Dies ist eine Einschränkung, die Sie anpassen und für jede Art von Validierung auf ein beliebiges Feld festlegen können.

EIN Benutzerdefinierte Validierungsbeschränkung Überschreibt die Basis-Constraint-Klasse (Erstellen eines beliebigen Validierungstyps für jedes Feld)

Ich bin nur nicht sicher, was der Unterschied ist, warum sollte ich den einen und nicht den anderen benutzen? Gibt es auch Leistungsunterschiede?


9
2018-03-04 15:42


Ursprung


Antworten:


Ich habe nicht die Form Component untersucht, um Unterschiede in der Performance zu bemerken, aber abgesehen davon, warum sollten Sie eines wählen:

Rückrufe

  • Es ist vorgesehen, den gesamten Validierungsprozess anzupassen, nicht nur die Einschränkung. Zum Beispiel können Sie festlegen, wo der Fehler angezeigt werden soll.
  • Das Ziel ist immer eine Klasse, die Sie nicht für eine Eigenschaft verwenden können;
  • Sie können es nicht wiederverwenden, es ist nur für diese Klasse / Entität verfügbar.

Benutzerdefinierte Validator-Einschränkungen

  • Sie können es überall wiederverwenden (wie von @MrGlass gesagt, können Sie sogar Dienste als Einschränkung verwenden);
  • Es kann für ein Klassen- und Eigenschaftenziel verwendet werden.
  • Sie können nur Anpassen, wenn etwas fehlschlägt, nicht was nach dem Fehlschlagen getan wird.

7
2018-03-04 16:18