Bug #4857

ValidatorResolver tries to use data type as validator type

Added by Karsten Dambekalns over 11 years ago. Updated over 10 years ago.

Status:
Resolved
Priority:
Must have
Category:
Validation
Start date:
2009-10-02
Due date:
% Done:

100%

Estimated time:
PHP Version:
Has patch:
Complexity:

Description

When buildMethodArgumentsValidatorConjunctions() iterates over method arguments, it tries to get a validator for each type. This works for simple types, but for objects the class name is used as validator directly. This is a) nonsense and b) causes circular dependency problems to begin with.

The problem is caused $typeValidator = $this->createValidator($methodParameter['type']);, since createValidator() expects to get either one of the internal validator shorthands or the fully qualified name of a validator - but not a data type!

#1

Updated by Bastian Waidelich over 11 years ago

Additional note: IIRC resolveValidatorObjectName() calls isObjectRegistered() on the object manager (and fires the FLOW3 autoloader) for simple types too. As arguments are mostly non-objects, this could be a performance issue..

#2

Updated by Karsten Dambekalns over 11 years ago

Bastian Waidelich wrote:

Additional note: IIRC resolveValidatorObjectName() calls isObjectRegistered() on the object manager (and fires the FLOW3 autoloader) for simple types too.

isObjectRegistered() is more or less a simple isset() - no autoloader involved.

#3

Updated by Karsten Dambekalns over 11 years ago

  • Status changed from Accepted to Resolved
  • % Done changed from 0 to 100

Applied in changeset r3288.

Also available in: Atom PDF